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

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

我正在为 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/

相关文章:

c++11 - gcc、clang 和 msvc 之间的可变参数模板示例的不同结果 - 谁能解释一下?

c++ - 将 char 数组转换为结构时出现段错误

swift - 为 Swift 添加对 32 位 Ubuntu 的支持

clang - 如何使用 lld 链接使用 clang -flto 编译的文件?

c++ - 在一个应用程序中创建两个窗口?

c++ - boost operator << 是不明确的

c++ - 抑制 system() 控制台输出

python - 如何使用 clang python 绑定(bind)获取类方法定义?

compiler-construction - 如何避免 LLVM 的代码生成器执行不需要的常量折叠?

c++ - 抑制单行的弃用警告