libtooling

    2热度

    1回答

    我是尝试通过libtooling分析AST的Clang的新手。 我想找到一个特定的功能,并将其AST从原始源文件移动到一个新文件。 我已经知道如何通过MatchFinder找到函数。 现在,我想知道如何将它的AST写入一个新文件(.c或.cpp) 在此先感谢!

    0热度

    1回答

    有没有“叮叮当当”来检查CXXMethodDecl是否与override或final关键字一起指定? 我可以通过std::string::find(" override")来检查代表CXXMethodDecl的字符串,但这种方式看起来有点难看。

    6热度

    1回答

    tldr;>如何在系统标题中隐藏警告? 我有以下的最小的例子源文件,它触发一个铛-整齐警告系统中的标头: #include <future> int main() { std::promise<int> p; p.set_value(3); } 使用铛-整齐4.0.0用的libstdC++ 7.0.1调用它在Ubuntu 17.04 : $ clang-tidy ma

    0热度

    1回答

    我无法找到一个正在查看API的人,但基本上我需要以下内容:在所有Visit *方法之后,我会调用一个最终方法对数据成员执行一些后处理。我假设它会类似于访问TranslationUnitDecl,除非是第一次访问方法,它将是最后一次。

    0热度

    1回答

    我正在使用clang的libtooling来修改一些代码,并且我试图找到一种方法来安全地插入标题,只要我的工具在C文件上使用。 我读过What's the right way to match #includes (or #defines) using Clang's libtooling?关于匹配调用预处理器的问题,但我仍然不确定使用它来插入代码。 使用libtooling重写器插入新#incl

    0热度

    1回答

    我试图使用clang libtooling分析函数。 这里是我想分析的源代码: #include <stdio.h> int main(){ int a = 100; printf("a==%d", a); } 当我跑我的工具,把所有的功能东方电气在上述文件 ,我发现有很多内置的/系统的功能,像: decls: _IO_cookie_init __underflo

    2热度

    2回答

    我正在使用LibTooling进行一些分析。我知道如何遍历AST并在某处插入一些文本。例如, Rewriter mywriter; mywriter.InsertTextAfter(func->getLocEnd(),"Hello"); 现在我想知道是否有任何方法可以保存代码? (天气将它保存到原始文件或生成一个新文件) 因为分析后,我只能读取终端上的结果,这对我来说还不够。

    0热度

    1回答

    我是clang libtooling的初学者。 我正在尝试使用clang :: CallGraph viewGraph生成我的调用图的.dot文件。 这里是代码: clang::CallGraph mCG; for (unsigned i = 0 ; i < DeclsSize ; ++i) { clang::FunctionDecl *FnDecl = (clang::Functi

    0热度

    1回答

    我有一个LibTooling(TimeFlag),用于为每个forstmt/whilestmt添加一个标志。我用./TimeFlag lalala.cpp --在lalala.cpp中插入标志 不幸的是,这个工具也会改变头文件,甚至系统库。 那么有没有让LibTooling处理输入文件的方法?

    1热度

    2回答

    有没有什么办法可以通过clang::FileID或clang::FileEntry得到 #include什么?