【发布时间】:2018-12-05 08:13:10
【问题描述】:
我想用clang AST,分析某个变量是如何使用的并做一些 如果识别出特定的使用模式,则进行源到源转换。 特别是,我正在寻找这样的模式:
void *h;
h = create_handler(...);
use_handler(h);
destroy_handler(h);
到目前为止,我能够检测到与void *h 对应的ValueDecl。下一步
将找到h 的所有用途,看看它们是否安全以及是否
create_handler/destroy_handler 正确地支配/后支配彼此。
不幸的是,我不知道如何迭代h 的用途,似乎
ValueDecl类中没有这样的接口。
如果您能建议我如何找到 a 的所有用途,我将不胜感激 AST 中的变量,或者指出一些基于 clang 的工具来处理类似的问题。
谢谢!
【问题讨论】:
标签: clang llvm abstract-syntax-tree static-analysis