我正在尝试使用 Clang 分析一些 C++ 代码。对于以下代码,我能够从 AST 中检索 Expr* x
作为 f-> bar(x)
的参数。现在,我想找到 x
的声明以获得它的初始值,但我不确定该怎么做。我还查看了此处的 Expr
文档 http://clang.llvm.org/doxygen/classclang_1_1Expr.html但我找不到任何有用的东西。
struct foo {
int bar(int x) { return x; }
};
int main(){
foo *f;
int x = 0, y = 0;
int y = f->bar(x);
return 0;
}
最佳答案
有点像
dynamic_cast<const VarDecl*>(dynamic_cast<const DeclRefExpr*>(x)->getDecl())->getInit();
关于c++ - 如何使用 Clang 查找变量声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636640/