diff options
author | Kristof Umann <kristof.umann@ericsson.com> | 2019-09-12 18:53:48 +0000 |
---|---|---|
committer | Kristof Umann <kristof.umann@ericsson.com> | 2019-09-12 18:53:48 +0000 |
commit | d977b67ed617f4c1f7e0d1450f3d0adc41cb07b4 (patch) | |
tree | 22d75ba6e0a93239d0cca2c0df4048a6e7b59d02 | |
parent | 890f17c256e68f1dddece62c238d43cdfdb84a37 (diff) | |
download | llvm-d977b67ed617f4c1f7e0d1450f3d0adc41cb07b4.zip llvm-d977b67ed617f4c1f7e0d1450f3d0adc41cb07b4.tar.gz llvm-d977b67ed617f4c1f7e0d1450f3d0adc41cb07b4.tar.bz2 |
[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
llvm-svn: 371756
-rw-r--r-- | clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp | 1 | ||||
-rw-r--r-- | clang/test/Analysis/analyzer-enabled-checkers.c | 71 |
2 files changed, 54 insertions, 18 deletions
diff --git a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp index 8e17edc..9bf70b7 100644 --- a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/clang/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/clang/test/Analysis/analyzer-enabled-checkers.c b/clang/test/Analysis/analyzer-enabled-checkers.c index 0ea01a0..0618a68 100644 --- a/clang/test/Analysis/analyzer-enabled-checkers.c +++ b/clang/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); +} |