libtooling相关内容
我在 clang 中实现了一个自定义属性,如官方手册中所述:http://clang.llvm.org/docs/InternalsManual.html#how-to-add-an-attribute 所以我在 Attr.td 中添加了以下代码: def MyAttr: InheritableAttr {let Spellings = [GNU, CXX11, GCC, Declspec
..
我是Clang的新手,他正尝试通过libtooling分析AST.我想找到一个特定的函数,并将其AST从原始源文件移动到新文件. 我知道如何通过MatchFinder查找功能.现在,我想知道如何将其AST写入新文件(.c或.cpp) 提前谢谢! 解决方案 摘要:要获取源文本,请使用 SourceManager ;要从原始文件中删除该功能,请生成一个 Replacement ,然
..
我按照官方手册中的描述在clang中实现了自定义属性: http://clang.llvm.org/docs/InternalsManual.html#how-to-add-an-attribute 所以我在Attr.td中添加了以下代码: def MyAttr:InheritableAttr {let Spellings = [GNU,CXX11
..
有什么方法可以通过文件 #include 的 clang :: SourceLocation $ c> clang :: FileID 或 clang :: FileEntry 或其他内容? 解决方案 使用源管理器的GetFiledLoc函数(将fileid作为参数)怎么样? SourceManager.GetIncludedLoc(fileid)
..
tldr;>如何在clang-tidy中隐藏系统标题中的警告? 我有以下最小示例源文件,会在系统标题中触发叮叮当当的警告: #include int main(){ std :: promise ; p.set_value(3); } 在Ubuntu上使用clang-tidy 4.0.0在libstdc ++ 7.0.1
..
我正在编写一个libtooling重构工具。我有一个类,例如 Foo ,在一个名为 foo.h 的标头中定义。我想查看 foo.h 是否包含在文件中。目前,要检查 bar.cc 是否包含 foo.h ,我只是使用 recordDecl(hasName(“ Foo”))。之所以可以这样,是因为 class Foo {...}; 在预处理后将存在于 bar.cc 的AST中,如果 bar.cc 包括
..
TL; DR; 如何从callExpr-> arg_0-> DeclRefExpr中获取用于恒定大小数组声明的宏名称. 详细的问题说明: 最近,我开始应对一项挑战,该挑战需要使用源到源转换工具进行修改 带有附加参数的特定函数调用.对我可以达到的方法的研究介绍了我 这个惊人的工具集Clang.我一直在学习如何使用libtooling中提供的不同工具来 实现我的目标.但是现在我遇到了
..
我正在使用clang libtooling. 到目前为止,我已经设法通过visitDeclRefExpr(DeclRefExpr *DR) 在源文件中引用该宏. 但是我可以得到一个宏的列表,它的名称和扩展名是字符串. exampleprogram.c #define abc ab #define sum 0 int main() { int ab; abc = abc
..
我正在使用clang 8.0.1开发反射工具.现在,我需要使用所有完全合格的名称打印Expr. 我已经尝试过将FullyQualifiedName位设置为true的内置prettyPrint函数.但是它仍然给出错误的结果. 对于这段代码: namespace math { struct Transform { float val; [[custom_at
..