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