[PATCH] D85319: [analyzer] Get info from the LLVM IR for precision
Whisperity via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 5 09:01:16 PDT 2020
whisperity added subscribers: dcoughlin, rjmccall, rsmith.
whisperity added a comment.
What will happen with the ability to analyse a translation unit whose target was not part of `LLVM_TARGETS_TO_BUILD` of the current `clang` binary? Will it break, because the binary lacks the information on how to generate for the given target?
================
Comment at: clang/include/clang/StaticAnalyzer/Core/IRContext.h:39-41
+ // Get the LLVM code for a function. We use the complete versions of the
+ // constructors and desctructors in this overload. Use the other overload to
+ // get the base object ctor/dtor.
----------------
Aren't documentation comments in LLVM `///`?
================
Comment at: clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:127
PP(CI.getPreprocessor()), OutDir(outdir), Opts(std::move(opts)),
- Plugins(plugins), Injector(injector), CTU(CI) {
+ Plugins(plugins), Injector(injector), CTU(CI), IRCtx(CG) {
DigestAnalyzerOptions();
----------------
Where's this `CG` defined?
================
Comment at: clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp:53-57
+ LLVMCtx = std::make_shared<llvm::LLVMContext>();
+ auto CGConsumer = BuildCodeGen(CI, *LLVMCtx, *CodeGenDiags);
+ AConsumer->setCodeGen(CGConsumer.get());
+ ASTConsumers.push_back(std::move(CGConsumer));
+ }
----------------
Isn't there a lifetime issue here? `LLVMCtx` is given as a raw reference to the `BuildCodeGen` and the shared pointer leaves scope at the end of the branch.
================
Comment at: clang/test/Analysis/ircontext.cpp:17-18
+ int l = 0;
+ foo(&l);
+ clang_analyzer_eval(g == 3); // expected-warning{{TRUE}}
+}
----------------
What are we testing here? Without the ability to read the pureness of `foo` from the IR, the knowledge about `g`'s value would be scrapped at the call? `foo` is defined in the current TU.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D85319/new/
https://reviews.llvm.org/D85319
More information about the cfe-commits
mailing list