From b5f31312eb6f814b9576d4b5a1d19afee4039d80 Mon Sep 17 00:00:00 2001 From: Kristof Umann Date: Thu, 12 Sep 2019 18:53:48 +0000 Subject: [PATCH] [analyzer] Don't run the analyzer for -analyzer-list-enabled-checkers Short and sweet. Whenever I use -analyzer-list-enabled-checkers, I'm only interested about the configuration, not about the analysis. Differential Revision: https://reviews.llvm.org/D66714 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@371756 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../ExecuteCompilerInvocation.cpp | 1 + test/Analysis/analyzer-enabled-checkers.c | 71 ++++++++++++++----- 2 files changed, 54 insertions(+), 18 deletions(-) diff --git a/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/lib/FrontendTool/ExecuteCompilerInvocation.cpp index 8e17edc7de..9bf70b793d 100644 --- a/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/lib/FrontendTool/ExecuteCompilerInvocation.cpp @@ -270,6 +270,7 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) { AnOpts, Clang->getDiagnostics(), Clang->getLangOpts()); + return true; } // Honor -analyzer-config-help. diff --git a/test/Analysis/analyzer-enabled-checkers.c b/test/Analysis/analyzer-enabled-checkers.c index 0ea01a010a..0618a68978 100644 --- a/test/Analysis/analyzer-enabled-checkers.c +++ b/test/Analysis/analyzer-enabled-checkers.c @@ -1,20 +1,55 @@ -// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin10 %s -o /dev/null -analyzer-checker=core -analyzer-list-enabled-checkers > %t 2>&1 -// RUN: FileCheck --input-file=%t %s +// RUN: %clang --analyze %s \ +// RUN: -Xclang -triple -Xclang x86_64-pc-linux-gnu \ +// RUN: -Xclang -analyzer-list-enabled-checkers \ +// RUN: -Xclang -analyzer-display-progress \ +// RUN: 2>&1 | FileCheck %s --implicit-check-not=ANALYZE \ +// RUN: --implicit-check-not=\. -// CHECK: OVERVIEW: Clang Static Analyzer Enabled Checkers List -// CHECK: core.CallAndMessage -// CHECK: core.DivideZero -// CHECK: core.DynamicTypePropagation -// CHECK: core.NonNullParamChecker -// CHECK: core.NullDereference -// CHECK: core.StackAddressEscape -// CHECK: core.UndefinedBinaryOperatorResult -// CHECK: core.VLASize -// CHECK: core.builtin.BuiltinFunctions -// CHECK: core.builtin.NoReturnFunctions -// CHECK: core.uninitialized.ArraySubscript -// CHECK: core.uninitialized.Assign -// CHECK: core.uninitialized.Branch -// CHECK: core.uninitialized.CapturedBlockVariable -// CHECK: core.uninitialized.UndefReturn +// CHECK: OVERVIEW: Clang Static Analyzer Enabled Checkers List +// CHECK-EMPTY: +// CHECK-NEXT: apiModeling.StdCLibraryFunctions +// CHECK-NEXT: apiModeling.TrustNonnull +// CHECK-NEXT: apiModeling.llvm.CastValue +// CHECK-NEXT: apiModeling.llvm.ReturnValue +// CHECK-NEXT: core.CallAndMessage +// CHECK-NEXT: core.DivideZero +// CHECK-NEXT: core.DynamicTypePropagation +// CHECK-NEXT: core.NonNullParamChecker +// CHECK-NEXT: core.NonnilStringConstants +// CHECK-NEXT: core.NullDereference +// CHECK-NEXT: core.StackAddrEscapeBase +// CHECK-NEXT: core.StackAddressEscape +// CHECK-NEXT: core.UndefinedBinaryOperatorResult +// CHECK-NEXT: core.VLASize +// CHECK-NEXT: core.builtin.BuiltinFunctions +// CHECK-NEXT: core.builtin.NoReturnFunctions +// CHECK-NEXT: core.uninitialized.ArraySubscript +// CHECK-NEXT: core.uninitialized.Assign +// CHECK-NEXT: core.uninitialized.Branch +// CHECK-NEXT: core.uninitialized.CapturedBlockVariable +// CHECK-NEXT: core.uninitialized.UndefReturn +// CHECK-NEXT: deadcode.DeadStores +// CHECK-NEXT: nullability.NullabilityBase +// CHECK-NEXT: nullability.NullPassedToNonnull +// CHECK-NEXT: nullability.NullReturnedFromNonnull +// CHECK-NEXT: security.insecureAPI.SecuritySyntaxChecker +// CHECK-NEXT: security.insecureAPI.UncheckedReturn +// CHECK-NEXT: security.insecureAPI.getpw +// CHECK-NEXT: security.insecureAPI.gets +// CHECK-NEXT: security.insecureAPI.mkstemp +// CHECK-NEXT: security.insecureAPI.mktemp +// CHECK-NEXT: security.insecureAPI.vfork +// CHECK-NEXT: unix.API +// CHECK-NEXT: unix.cstring.CStringModeling +// CHECK-NEXT: unix.DynamicMemoryModeling +// CHECK-NEXT: unix.Malloc +// CHECK-NEXT: unix.MallocSizeof +// CHECK-NEXT: unix.MismatchedDeallocator +// CHECK-NEXT: unix.Vfork +// CHECK-NEXT: unix.cstring.BadSizeArg +// CHECK-NEXT: unix.cstring.NullArg +int main() { + int i; + (void)(10 / i); +} -- 2.40.0