alexfh accepted this revision.
alexfh added a comment.
This revision is now accepted and ready to land.
LG
================
Comment at: clang-tidy/ClangTidy.cpp:490
+ CommandLineArguments AdjustedArgs = Args;
+ AdjustedArgs.emplace_back("-D__clang_analyzer__");
+ return AdjustedArgs;
----------------
zinovy.nis wrote:
> alexfh wrote:
> > I wonder whether we should instead reuse the logic in the frontend
> > (tools/clang/lib/Frontend/InitPreprocessor.cpp:970). This could be done by
> > overriding ActionFactory::runInvocation and setting
> > FrontendOptions::ProgramAction to frontend::RunAnalysis there. WDYT?
> Thanks. I know about this code. But I'm not sure that we can reuse
> RunAnalysys action hre - we need to parse AST only, but RunAnalysys does a
> lot of other things we dont' need. Is it correct?
Clang tooling accepts the action from the client (in this case clang-tidy) and
doesn't rely on frontend code that creates an action depending on the value of
FrontendOptions::ProgramAction (clang::ExecuteCompilerInvocation). Thus,
setting this frontend option will only trigger the logic in
Frontend/InitPreprocessor.cpp that defines the macro.
On one hand, doing so will help clang-tidy to keep distance from whatever is
done in the frontend to support static analyzer. On the other side, as your
answer shows, this may not be a clear way to interact with that logic.
So I'm fine with either implementation.
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D44906
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits