Я работаю над пользовательским средством проверки статического анализатора clang, которое проверяет некорректное использование API-интерфейсов CPython. Я добился определенного прогресса, но я застрял: как я могу получить clang::QualType
значение, данное имя типа?
Например, я хотел бы написать что-то вроде этого:
QualType ty = findTheTypeNamed("Py_ssize_t");
Я потратил время на просмотр кода для clang::ASTContext
а также clang::QualType
, но я потерялся.
Как я могу получить clang::QualType
из названия типа?
asString
сужающий совпадение превращает строку в квалитп
Вот соответствующая документация:
Matches if the matched type is represented by the given string.
Given
class Y { public: void x(); };
void z() { Y* y; y->x(); }
cxxMemberCallExpr(on(hasType(asString("class Y *"))))
matches y->x()
Других решений пока нет …