Как я могу получить clang :: QualType из строки?

Я работаю над пользовательским средством проверки статического анализатора clang, которое проверяет некорректное использование API-интерфейсов CPython. Я добился определенного прогресса, но я застрял: как я могу получить clang::QualType значение, данное имя типа?

Например, я хотел бы написать что-то вроде этого:

QualType ty = findTheTypeNamed("Py_ssize_t");

Я потратил время на просмотр кода для clang::ASTContext а также clang::QualType, но я потерялся.

Как я могу получить clang::QualType из названия типа?

1

Решение

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()
1

Другие решения

Других решений пока нет …