2 # Copyright 2014 The Tor Project, Inc
3 # See LICENSE for licensing information
5 # This script is used for running a bunch of clang scan-build checkers
8 # These don't seem to cause false positives in our code, so let's turn
11 -enable-checker alpha.core.CallAndMessageUnInitRefArg \
12 -enable-checker alpha.core.CastToStruct \
13 -enable-checker alpha.core.Conversion \
14 -enable-checker alpha.core.FixedAddr \
15 -enable-checker alpha.core.IdenticalExpr \
16 -enable-checker alpha.core.PointerArithm \
17 -enable-checker alpha.core.SizeofPtr \
18 -enable-checker alpha.core.TestAfterDivZero \
19 -enable-checker alpha.security.MallocOverflow \
20 -enable-checker alpha.security.ReturnPtrRange \
21 -enable-checker alpha.unix.BlockInCriticalSection \
22 -enable-checker alpha.unix.Chroot \
23 -enable-checker alpha.unix.PthreadLock \
24 -enable-checker alpha.unix.PthreadLock \
25 -enable-checker alpha.unix.SimpleStream \
26 -enable-checker alpha.unix.Stream \
27 -enable-checker alpha.unix.cstring.BufferOverlap \
28 -enable-checker alpha.unix.cstring.NotNullTerminated \
29 -enable-checker valist.CopyToSelf \
30 -enable-checker valist.Uninitialized \
31 -enable-checker valist.Unterminated \
32 -enable-checker security.FloatLoopCounter \
33 -enable-checker security.insecureAPI.strcpy \
36 # shellcheck disable=SC2034
37 # These have high false-positive rates.
39 -enable-checker alpha.security.ArrayBoundV2 \
40 -enable-checker alpha.unix.cstring.OutOfBounds \
41 -enable-checker alpha.core.CastSize \
44 # shellcheck disable=SC2034
45 # These don't seem to generate anything useful
47 -enable-checker alpha.clone.CloneChecker \
48 -enable-checker alpha.deadcode.UnreachableCode \
51 if test "x$SCAN_BUILD_OUTPUT" != "x"; then
52 OUTPUTARG
="-o $SCAN_BUILD_OUTPUT"
57 # shellcheck disable=SC2086
65 # Make this not get scanned for dead assignments, since it has lots of
66 # dead assignments we don't care about.
67 # shellcheck disable=SC2086
70 -disable-checker deadcode.DeadStores \
71 make -j5 -k .
/src
/ext
/ed25519
/ref10
/libed25519_ref10.a
73 # shellcheck disable=SC2086
75 $CHECKERS $OUTPUTARG \
81 # This one gives a false positive on every strcmp.
82 # -enable-checker alpha.core.PointerSub
85 # -enable-checker alpha.unix.MallocWithAnnotations