【发布时间】:2019-08-26 06:23:44
【问题描述】:
我正在研究 clang Libtooling。
我想在再次使用时获取有关数组及其大小的信息。 我在如何实现它方面遇到困难。
这是我的测试文件
void test()
{
int array[5];
array[4]=8;
}
到目前为止,我能够在第 3 行获得数组名称及其大小等信息
尺寸我用这个
if (const VarDecl *D = Result.Nodes.getNodeAs<clang::VarDecl> ("gotit")){
auto t = dyn_cast_or_null<ConstantArrayType>(D->getType().getTypePtr());
const llvm::APInt a = t->getSize();
llvm::outs() << a;
llvm::outs()<< "\n";
llvm::outs()<< " array name is : " << D->getNameAsString();
}
但是我怎样才能获得第 4 行的信息。
大小为 4,名称为数组。 如果有任何解决方案,请建议我。
【问题讨论】:
-
如何在看到声明时保存有关数组的信息,并在使用时从自己的内部缓存中获取信息?
标签: c++ clang llvm abstract-syntax-tree