analyzer: enable taint state machine by default [PR103533]
commitcfaaa8b11b8429eed5ec44426fc6a20ad5d53d30
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 14 Nov 2023 20:51:52 +0000 (14 15:51 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Tue, 14 Nov 2023 20:51:52 +0000 (14 15:51 -0500)
tree97d6811e7c4b36c116afa01a971db73552c8b147
parentc6560525ca4e59598625c7586290c0f829cd6598
analyzer: enable taint state machine by default [PR103533]

gcc/analyzer/ChangeLog:
PR analyzer/103533
* sm-taint.cc: Remove "experimental" from comment.
* sm.cc (make_checkers): Always add taint state machine.

gcc/ChangeLog:
PR analyzer/103533
* doc/invoke.texi (Static Analyzer Options): Add the six
-Wanalyzer-tainted-* warnings.  Update documentation of each
warning to reflect removed requirement to use
-fanalyzer-checker=taint.  Remove discussion of
-fanalyzer-checker=taint.

gcc/testsuite/ChangeLog:
PR analyzer/103533
* c-c++-common/analyzer/attr-tainted_args-1.c: Remove use of
-fanalyzer-checker=taint.
* c-c++-common/analyzer/fread-1.c: Likewise.
* c-c++-common/analyzer/pr104029.c: Likewise.
* gcc.dg/analyzer/pr93032-mztools-signed-char.c: Add params to
work around state explosion.
* gcc.dg/analyzer/pr93032-mztools-unsigned-char.c: Likewise.
* gcc.dg/analyzer/pr93382.c: Remove use of
-fanalyzer-checker=taint.
* gcc.dg/analyzer/switch-enum-taint-1.c: Likewise.
* gcc.dg/analyzer/taint-CVE-2011-2210-1.c: Likewise.
* gcc.dg/analyzer/taint-CVE-2020-13143-1.c: Likewise.
* gcc.dg/analyzer/taint-CVE-2020-13143-2.c: Likewise.
* gcc.dg/analyzer/taint-CVE-2020-13143.h: Likewise.
* gcc.dg/analyzer/taint-alloc-1.c: Likewise.
* gcc.dg/analyzer/taint-alloc-2.c: Likewise.
* gcc.dg/analyzer/taint-alloc-3.c: Likewise.
* gcc.dg/analyzer/taint-alloc-4.c: Likewise.
* gcc.dg/analyzer/taint-alloc-5.c: Likewise.
* gcc.dg/analyzer/taint-assert-BUG_ON.c: Likewise.
* gcc.dg/analyzer/taint-assert-macro-expansion.c: Likewise.
* gcc.dg/analyzer/taint-assert-system-header.c: Likewise.
* gcc.dg/analyzer/taint-assert.c: Likewise.
* gcc.dg/analyzer/taint-divisor-1.c: Likewise.
* gcc.dg/analyzer/taint-divisor-2.c: Likewise.
* gcc.dg/analyzer/taint-merger.c: Likewise.
* gcc.dg/analyzer/taint-ops.c: Delete this test: it was a
duplicate of material in operations.c and data-model-1.c, with
-fanalyzer-checker=taint added.
* gcc.dg/analyzer/taint-read-index-1.c: Remove use of
-fanalyzer-checker=taint.
* gcc.dg/analyzer/taint-read-offset-1.c: Likewise.
* gcc.dg/analyzer/taint-realloc.c: Likewise.  Add missing
dg-warning for leak now that the malloc state machine is also
active.
* gcc.dg/analyzer/taint-size-1.c: Remove use of
-fanalyzer-checker=taint.
* gcc.dg/analyzer/taint-size-access-attr-1.c: Likewise.
* gcc.dg/analyzer/taint-write-index-1.c: Likewise.
* gcc.dg/analyzer/taint-write-offset-1.c: Likewise.
* gcc.dg/analyzer/torture/taint-read-index-2.c: Likewise.
* gcc.dg/analyzer/torture/taint-read-index-3.c: Likewise.
* gcc.dg/plugin/taint-CVE-2011-0521-1-fixed.c: Likewise.  Add
-Wno-pedantic.
* gcc.dg/plugin/taint-CVE-2011-0521-1.c: Likewise.
* gcc.dg/plugin/taint-CVE-2011-0521-2-fixed.c: Likewise.
* gcc.dg/plugin/taint-CVE-2011-0521-2.c: Likewise.
* gcc.dg/plugin/taint-CVE-2011-0521-3-fixed.c: Likewise.
* gcc.dg/plugin/taint-CVE-2011-0521-3.c: Likewise.  Fix C++-style
comment.
* gcc.dg/plugin/taint-CVE-2011-0521-4.c: Remove use of
-fanalyzer-checker=taint and add -Wno-pedantic. Remove xfail and
add missing dg-warning.
* gcc.dg/plugin/taint-CVE-2011-0521-5-fixed.c: Remove use of
-fanalyzer-checker=taint and add -Wno-pedantic.
* gcc.dg/plugin/taint-CVE-2011-0521-5.c: Likewise.
* gcc.dg/plugin/taint-CVE-2011-0521-6.c: Likewise.
* gcc.dg/plugin/taint-antipatterns-1.c: : Remove use of
-fanalyzer-checker=taint.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
47 files changed:
gcc/analyzer/sm-taint.cc
gcc/analyzer/sm.cc
gcc/doc/invoke.texi
gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-1.c
gcc/testsuite/c-c++-common/analyzer/fread-1.c
gcc/testsuite/c-c++-common/analyzer/pr104029.c
gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-signed-char.c
gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-unsigned-char.c
gcc/testsuite/gcc.dg/analyzer/pr93382.c
gcc/testsuite/gcc.dg/analyzer/switch-enum-taint-1.c
gcc/testsuite/gcc.dg/analyzer/taint-CVE-2011-2210-1.c
gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-1.c
gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-2.c
gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143.h
gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
gcc/testsuite/gcc.dg/analyzer/taint-alloc-2.c
gcc/testsuite/gcc.dg/analyzer/taint-alloc-3.c
gcc/testsuite/gcc.dg/analyzer/taint-alloc-4.c
gcc/testsuite/gcc.dg/analyzer/taint-alloc-5.c
gcc/testsuite/gcc.dg/analyzer/taint-assert-BUG_ON.c
gcc/testsuite/gcc.dg/analyzer/taint-assert-macro-expansion.c
gcc/testsuite/gcc.dg/analyzer/taint-assert-system-header.c
gcc/testsuite/gcc.dg/analyzer/taint-assert.c
gcc/testsuite/gcc.dg/analyzer/taint-divisor-1.c
gcc/testsuite/gcc.dg/analyzer/taint-divisor-2.c
gcc/testsuite/gcc.dg/analyzer/taint-merger.c
gcc/testsuite/gcc.dg/analyzer/taint-ops.c [deleted file]
gcc/testsuite/gcc.dg/analyzer/taint-read-index-1.c
gcc/testsuite/gcc.dg/analyzer/taint-read-offset-1.c
gcc/testsuite/gcc.dg/analyzer/taint-realloc.c
gcc/testsuite/gcc.dg/analyzer/taint-size-1.c
gcc/testsuite/gcc.dg/analyzer/taint-size-access-attr-1.c
gcc/testsuite/gcc.dg/analyzer/taint-write-index-1.c
gcc/testsuite/gcc.dg/analyzer/taint-write-offset-1.c
gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-2.c
gcc/testsuite/gcc.dg/analyzer/torture/taint-read-index-3.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1-fixed.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2-fixed.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-3-fixed.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-3.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-4.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-5-fixed.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-5.c
gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-6.c
gcc/testsuite/gcc.dg/plugin/taint-antipatterns-1.c