blob: 9ad1be05385172fcd4ebc5097f79034a62cab5b2 [file] [log] [blame]
Gabor Marton8248c2a2020-09-07 17:15:15 +02001// Here we test the order of the Checkers when StdCLibraryFunctionArgs is
2// enabled.
3
4// RUN: %clang --analyze %s --target=x86_64-pc-linux-gnu \
5// RUN: -Xclang -analyzer-checker=core \
6// RUN: -Xclang -analyzer-checker=apiModeling.StdCLibraryFunctions \
7// RUN: -Xclang -analyzer-config \
8// RUN: -Xclang apiModeling.StdCLibraryFunctions:ModelPOSIX=true \
9// RUN: -Xclang -analyzer-checker=alpha.unix.StdCLibraryFunctionArgs \
10// RUN: -Xclang -analyzer-checker=alpha.unix.Stream \
11// RUN: -Xclang -analyzer-list-enabled-checkers \
12// RUN: -Xclang -analyzer-display-progress \
13// RUN: 2>&1 | FileCheck %s --implicit-check-not=ANALYZE \
14// RUN: --implicit-check-not=\.
15
16// CHECK: OVERVIEW: Clang Static Analyzer Enabled Checkers List
17// CHECK-EMPTY:
18// CHECK-NEXT: core.CallAndMessageModeling
19// CHECK-NEXT: core.CallAndMessage
20// CHECK-NEXT: core.NonNullParamChecker
21// CHECK-NEXT: alpha.unix.Stream
22// CHECK-NEXT: apiModeling.StdCLibraryFunctions
23// CHECK-NEXT: alpha.unix.StdCLibraryFunctionArgs
24// CHECK-NEXT: apiModeling.TrustNonnull
25// CHECK-NEXT: apiModeling.llvm.CastValue
26// CHECK-NEXT: apiModeling.llvm.ReturnValue
27// CHECK-NEXT: core.DivideZero
28// CHECK-NEXT: core.DynamicTypePropagation
29// CHECK-NEXT: core.NonnilStringConstants
30// CHECK-NEXT: core.NullDereference
31// CHECK-NEXT: core.StackAddrEscapeBase
32// CHECK-NEXT: core.StackAddressEscape
33// CHECK-NEXT: core.UndefinedBinaryOperatorResult
34// CHECK-NEXT: core.VLASize
35// CHECK-NEXT: core.builtin.BuiltinFunctions
36// CHECK-NEXT: core.builtin.NoReturnFunctions
37// CHECK-NEXT: core.uninitialized.ArraySubscript
38// CHECK-NEXT: core.uninitialized.Assign
39// CHECK-NEXT: core.uninitialized.Branch
40// CHECK-NEXT: core.uninitialized.CapturedBlockVariable
41// CHECK-NEXT: core.uninitialized.UndefReturn
42// CHECK-NEXT: deadcode.DeadStores
43// CHECK-NEXT: nullability.NullabilityBase
44// CHECK-NEXT: nullability.NullPassedToNonnull
45// CHECK-NEXT: nullability.NullReturnedFromNonnull
46// CHECK-NEXT: security.insecureAPI.SecuritySyntaxChecker
47// CHECK-NEXT: security.insecureAPI.UncheckedReturn
48// CHECK-NEXT: security.insecureAPI.getpw
49// CHECK-NEXT: security.insecureAPI.gets
50// CHECK-NEXT: security.insecureAPI.mkstemp
51// CHECK-NEXT: security.insecureAPI.mktemp
52// CHECK-NEXT: security.insecureAPI.vfork
53// CHECK-NEXT: unix.API
54// CHECK-NEXT: unix.cstring.CStringModeling
55// CHECK-NEXT: unix.DynamicMemoryModeling
56// CHECK-NEXT: unix.Malloc
57// CHECK-NEXT: unix.MallocSizeof
58// CHECK-NEXT: unix.MismatchedDeallocator
59// CHECK-NEXT: unix.Vfork
60// CHECK-NEXT: unix.cstring.BadSizeArg
61// CHECK-NEXT: unix.cstring.NullArg
62
63int main() {
64 int i;
65 (void)(10 / i);
66}