gpt4 book ai didi

c++ - 禁用 Clang 工具诊断

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:56 26 4
gpt4 key购买 nike

这将是一个一般性问题。我目前正在为 clang 编写一个与 AST 遍历相关的工具。所以我有一个 frontendaction 来创建一个 ASTConsumer,它还有一个 RecursiveASTVistor。我调用 Tool.run() 来执行我的操作。它运行良好,但默认情况下 clang 会打印出我尝试分析的 repo 中的所有警告和错误。无论如何我可以禁用 clang 诊断吗?我知道当我们用 clang 编译时,-w 选项都会禁用诊断。但是我们如何为工具做到这一点?顺便说一下,我的工具位于 /llvm/tools/clang/tools/extra/mytool

谢谢。

最佳答案

您可以使用 IgnoringDiagConsumer抑制所有诊断消息:

class MyFrontendAction : public ASTFrontendAction
{
public:
MyFrontendAction() {}

std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef file) override
{
CI.getDiagnostics().setClient(new IgnoringDiagConsumer());
return llvm::make_unique<MyASTConsumer>();
}
};

或者您可以实现自己的 DiagnosticConsumer 来处理诊断。

另一种选择是在命令行的 -- 之后将 -w 选项传递给您的工具以忽略警告(当然不会抑制错误消息):

mytool.exe test.cpp -- -w

关于c++ - 禁用 Clang 工具诊断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com