libtooling

    0热度

    1回答

    我创建了一个if(isa<IfStmt>(s))和if(isa<ReturnStmt>(s)),它会打印出一些内容。我创建了包含内部的if语句 #include <stdlib.h> int main(int argc, char** argv) { int a = atoi(argv[1]); if(a == 0) return 1; else

    0热度

    1回答

    目前我已经在我开发它的机器上安装了clang-llvm测试过我的工具。我所要做的就是进入build/bin来运行我的工具。 但是,我现在想尝试在另一台机器上运行此工具。 我应该在这里做些什么来运行我开发的工具? 我是否也必须设置整个clang-llvm环境?这是非常耗费时间和整个文件夹的大小约为22+ GB .. 我创建运行RecursiveASTVisitor工具(相同的环境下面的链接) htt

    1热度

    1回答

    我已经转储了简单C++代码的AST树。 是否有可能只访问选定的节点并忽略包括使用libTooling或ASTMatchers的孩子在内的其他一切?

    1热度

    1回答

    我正在使用一些叮当声工具,并且我需要生成类型没有明确指定的源代码。 我从clang::QualType获得的类型的字符串类似于:class std::initializer_list<int>。问题是没有关键字的类型。 我试过dyn_cast<>类型(clang::Type)到TypeWithKeyword的所有继承人,但结果始终为空。 当然,我可以从类型名称的字符串中删除所有出现的“类”,“结构

    0热度

    1回答

    我已经根据以下链接编写了自定义clang前端工具。 http://clang.llvm.org/docs/RAVFrontendAction.html 现在我将clang源代码本身给我的前端工具进行静态分析。 我的工具为这个测试用例抛出一个异常 https://llvm.org/svn/llvm-project/cfe/trunk/test/CXX/expr/expr.const/p2-0x.cp

    2热度

    1回答

    我有一个MatchFinder定义为: MatchFinder Finder; Finder.addMatcher(FunctionCallMatcher, &printer); 而且DeclarationMatcher和MatchCallback情况如下: DeclarationMatcher FunctionCallMatcher = functionDecl(isDefinition(

    0热度

    1回答

    我想使用libtooling来测试由CXXRecordDecl定义的复制是否可复制构造。 我已经尝试: hasCopyConstructorWithConstParam() hasTrivialCopyConstructor() || hasNonTrivialCopyConstructor() 不幸的是,这两个表达式返回true如果类的拷贝构造函数被隐式删除。如果类从不可复制的类继承,或者具有不

    0热度

    1回答

    我在玩LibTooling:我想要做的是输出源文件中所有变量的所有位置。 要找到所有变量的出现,我重载了RecursiveASTVisitor和方法“bool VisitStmt(Stmt)”(见下文),但现在我不知道如何输出变量的名称。目前,我的代码只输出“DeclRefExpr”,但我想要“myNewVariable”或我在输入文件中定义的任何内容。 class MyASTVisitor :

    2热度

    1回答

    不可见我实现在铿锵的自定义属性在官方手册中描述: http://clang.llvm.org/docs/InternalsManual.html#how-to-add-an-attribute 所以我下面的代码添加到Attr.td: def MyAttr: InheritableAttr { let Spellings = [GNU<"my_attr">, CXX11<"me", "my_at

    1热度

    1回答

    我是呱呱libTooling开发新手。 考虑下面的变量声明 int i, j, k = 10; ^ ^ 我的项目的要求,我想捕捉整个声明表达包括“I”,“J”和“K”。 如何捕获包含clang libTooling的所有变量的完整声明表达式? 我正在经历的是,我没有得到访问者的完整表达式,而是我得到访问者的个人变量声明。 这是叮当libTooling的预期行为还是我错过了什么? 请建议我