[PATCH] D83475: [analyzer] Add CTUImportCppThreshold for C++ files
Gabor Marton via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 9 06:37:02 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGd12d0b73f1c9: [analyzer] Add CTUImportCppThreshold for C++ files (authored by martong).
Changed prior to commit:
https://reviews.llvm.org/D83475?vs=276722&id=276727#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83475/new/
https://reviews.llvm.org/D83475
Files:
clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
clang/lib/CrossTU/CrossTranslationUnit.cpp
clang/test/Analysis/analyzer-config.c
clang/test/Analysis/ctu-import-threshold.c
clang/unittests/CrossTU/CrossTranslationUnitTest.cpp
Index: clang/unittests/CrossTU/CrossTranslationUnitTest.cpp
===================================================================
--- clang/unittests/CrossTU/CrossTranslationUnitTest.cpp
+++ clang/unittests/CrossTU/CrossTranslationUnitTest.cpp
@@ -147,6 +147,7 @@
std::unique_ptr<clang::ASTConsumer>
CreateASTConsumer(clang::CompilerInstance &CI, StringRef) override {
CI.getAnalyzerOpts()->CTUImportThreshold = OverrideLimit;
+ CI.getAnalyzerOpts()->CTUImportCppThreshold = OverrideLimit;
return std::make_unique<CTUASTConsumer>(CI, Success);
}
Index: clang/test/Analysis/ctu-import-threshold.c
===================================================================
--- clang/test/Analysis/ctu-import-threshold.c
+++ clang/test/Analysis/ctu-import-threshold.c
@@ -1,5 +1,6 @@
// Ensure analyzer option 'ctu-import-threshold' is a recognized option.
//
// RUN: %clang_cc1 -analyze -analyzer-config ctu-import-threshold=30 -verify %s
+// RUN: %clang_cc1 -analyze -analyzer-config ctu-import-cpp-threshold=30 -verify %s
//
// expected-no-diagnostics
Index: clang/test/Analysis/analyzer-config.c
===================================================================
--- clang/test/Analysis/analyzer-config.c
+++ clang/test/Analysis/analyzer-config.c
@@ -43,7 +43,8 @@
// CHECK-NEXT: cplusplus.SmartPtrModeling:ModelSmartPtrDereference = false
// CHECK-NEXT: crosscheck-with-z3 = false
// CHECK-NEXT: ctu-dir = ""
-// CHECK-NEXT: ctu-import-threshold = 8
+// CHECK-NEXT: ctu-import-cpp-threshold = 8
+// CHECK-NEXT: ctu-import-threshold = 24
// CHECK-NEXT: ctu-index-name = externalDefMap.txt
// CHECK-NEXT: ctu-invocation-list = invocations.yaml
// CHECK-NEXT: deadcode.DeadStores:ShowFixIts = false
Index: clang/lib/CrossTU/CrossTranslationUnit.cpp
===================================================================
--- clang/lib/CrossTU/CrossTranslationUnit.cpp
+++ clang/lib/CrossTU/CrossTranslationUnit.cpp
@@ -367,7 +367,9 @@
CompilerInstance &CI)
: Loader(CI, CI.getAnalyzerOpts()->CTUDir,
CI.getAnalyzerOpts()->CTUInvocationList),
- LoadGuard(CI.getAnalyzerOpts()->CTUImportThreshold) {}
+ LoadGuard(CI.getASTContext().getLangOpts().CPlusPlus
+ ? CI.getAnalyzerOpts()->CTUImportCppThreshold
+ : CI.getAnalyzerOpts()->CTUImportThreshold) {}
llvm::Expected<ASTUnit *>
CrossTranslationUnitContext::ASTUnitStorage::getASTUnitForFile(
Index: clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
===================================================================
--- clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
+++ clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
@@ -321,9 +321,16 @@
ANALYZER_OPTION(unsigned, CTUImportThreshold, "ctu-import-threshold",
"The maximal amount of translation units that is considered "
"for import when inlining functions during CTU analysis. "
- "Lowering this threshold can alleviate the memory burder of "
+ "Lowering this threshold can alleviate the memory burden of "
"analysis with many interdependent definitions located in "
- "various translation units.",
+ "various translation units. This is valid only for non C++ "
+ "source files.",
+ 24u)
+
+ANALYZER_OPTION(unsigned, CTUImportCppThreshold, "ctu-import-cpp-threshold",
+ "The maximal amount of translation units that is considered "
+ "for import when inlining functions during CTU analysis of C++ "
+ "source files.",
8u)
ANALYZER_OPTION(
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83475.276727.patch
Type: text/x-patch
Size: 3681 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200709/98992d20/attachment.bin>
More information about the cfe-commits
mailing list