我正在使用clang静态分析器的自定义检查程序来检查CPython API的错误使用。我已经取得了一些进展,但我陷入了困境:如何根据类型的名称获得clang::QualType
值?
例如,我想写这样的东西:
QualType ty = findTheTypeNamed("Py_ssize_t");
我花了很多时间查看clang::ASTContext
和clang::QualType
的代码,但我输了。
如何从类型名称中获取clang::QualType
?
答案 0 :(得分:1)
asString
narrowing matcher将字符串转换为限定类型。
以下是相关文档:
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()