我正在为clang静态分析器创建自定义检查器,该检查器检查是否正确使用了CPython API。我已经取得了一些进展,但是我遇到了麻烦:给定类型名称,如何获得clang::QualType值?

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

QualType ty = findTheTypeNamed("Py_ssize_t");

我已经花了一些时间查看clang::ASTContextclang::QualType的代码,但我迷路了。

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

最佳答案

asString narrowing matcher将字符串转换为qualtype。

这是相关的文档:

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

关于c++ - 如何从字符串获取clang::QualType?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39585653/

10-11 22:59