From 3761e7a4be8138095d333dd6e0f09eccdb566de5 Mon Sep 17 00:00:00 2001 From: Artem Dergachev Date: Thu, 22 Mar 2018 22:05:53 +0000 Subject: [PATCH] [analyzer] Enable temporary object destructor inlining by default. When a temporary is constructed with a proper construction context, it should be safe to inline the destructor. We have added suppressions for some of the common false positives caused by such inlining, so there should be - and from my observations there indeed is - more benefit than harm from enabling destructor inlining. Differential Revision: https://reviews.llvm.org/D44721 llvm-svn: 328258 --- clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp | 2 +- clang/test/Analysis/analyzer-config.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp b/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp index d73bab4..65231ea 100644 --- a/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp +++ b/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp @@ -263,7 +263,7 @@ bool AnalyzerOptions::mayInlineCXXSharedPtrDtor() { bool AnalyzerOptions::mayInlineCXXTemporaryDtors() { return getBooleanOption(InlineCXXTemporaryDtors, "c++-temp-dtor-inlining", - /*Default=*/false); + /*Default=*/true); } bool AnalyzerOptions::mayInlineObjCMethod() { diff --git a/clang/test/Analysis/analyzer-config.cpp b/clang/test/Analysis/analyzer-config.cpp index 72a79b2..888cd77 100644 --- a/clang/test/Analysis/analyzer-config.cpp +++ b/clang/test/Analysis/analyzer-config.cpp @@ -23,7 +23,7 @@ public: // CHECK-NEXT: c++-inlining = destructors // CHECK-NEXT: c++-shared_ptr-inlining = false // CHECK-NEXT: c++-stdlib-inlining = true -// CHECK-NEXT: c++-temp-dtor-inlining = false +// CHECK-NEXT: c++-temp-dtor-inlining = true // CHECK-NEXT: c++-template-inlining = true // CHECK-NEXT: cfg-conditional-static-initializers = true // CHECK-NEXT: cfg-implicit-dtors = true -- 2.7.4