如何从字符串中获取clang :: QualType?

时间:2016-09-20 04:24:52

标签: c++ clang llvm clang-static-analyzer

我正在使用clang静态分析器的自定义检查程序来检查CPython API的错误使用。我已经取得了一些进展,但我陷入了困境:如何根据类型的名称获得clang::QualType值?

例如,我想写这样的东西:

QualType ty = findTheTypeNamed("Py_ssize_t");

我花了很多时间查看clang::ASTContextclang::QualType的代码,但我输了。

如何从类型名称中获取clang::QualType

1 个答案:

答案 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()