xref: /llvm-project/clang/test/Analysis/std-c-library-functions-arg-enabled-checkers.c (revision 854cbbf4a8e7e98b7461eae2c2a37cfa767f791c)
1 // Here we test the order of the Checkers when StdCLibraryFunctions 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=unix.StdCLibraryFunctions \
7 // RUN:   -Xclang -analyzer-config \
8 // RUN:      -Xclang unix.StdCLibraryFunctions:ModelPOSIX=true \
9 // RUN:   -Xclang -analyzer-checker=unix.Stream \
10 // RUN:   -Xclang -analyzer-list-enabled-checkers \
11 // RUN:   -Xclang -analyzer-display-progress \
12 // RUN:   2>&1 | FileCheck %s --implicit-check-not=ANALYZE \
13 // RUN:                       --implicit-check-not=\.
14 
15 // CHECK:      OVERVIEW: Clang Static Analyzer Enabled Checkers List
16 // CHECK-EMPTY:
17 // CHECK-NEXT: apiModeling.Errno
18 // CHECK-NEXT: apiModeling.TrustNonnull
19 // CHECK-NEXT: apiModeling.TrustReturnsNonnull
20 // CHECK-NEXT: apiModeling.llvm.CastValue
21 // CHECK-NEXT: apiModeling.llvm.ReturnValue
22 // CHECK-NEXT: core.BitwiseShift
23 // CHECK-NEXT: core.CallAndMessageModeling
24 // CHECK-NEXT: core.CallAndMessage
25 // CHECK-NEXT: core.DereferenceModeling
26 // CHECK-NEXT: core.DivideZero
27 // CHECK-NEXT: core.DynamicTypePropagation
28 // CHECK-NEXT: core.NonNullParamChecker
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.BlockInCriticalSection
55 // CHECK-NEXT: unix.Chroot
56 // CHECK-NEXT: unix.cstring.CStringModeling
57 // CHECK-NEXT: unix.DynamicMemoryModeling
58 // CHECK-NEXT: unix.Errno
59 // CHECK-NEXT: unix.Malloc
60 // CHECK-NEXT: unix.MallocSizeof
61 // CHECK-NEXT: unix.MismatchedDeallocator
62 // CHECK-NEXT: unix.Stream
63 // CHECK-NEXT: unix.StdCLibraryFunctions
64 // CHECK-NEXT: unix.Vfork
65 // CHECK-NEXT: unix.cstring.BadSizeArg
66 // CHECK-NEXT: unix.cstring.NotNullTerminated
67 // CHECK-NEXT: unix.cstring.NullArg
68 
69 int main() {
70   int i;
71   (void)(10 / i);
72 }
73