gcc/gcc/testsuite/gcc.dg/analyzer
David Malcolm e1a9168153 New warning: -Wanalyzer-jump-through-null [PR105947]
This patch adds a new warning to -fanalyzer for jumps through NULL
function pointers.

gcc/analyzer/ChangeLog:
	PR analyzer/105947
	* analyzer.opt (Wanalyzer-jump-through-null): New option.
	* engine.cc (class jump_through_null): New.
	(exploded_graph::process_node): Complain about jumps through NULL
	function pointers.

gcc/ChangeLog:
	PR analyzer/105947
	* doc/invoke.texi: Add -Wanalyzer-jump-through-null.

gcc/testsuite/ChangeLog:
	PR analyzer/105947
	* gcc.dg/analyzer/function-ptr-5.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2022-08-05 19:45:41 -04:00
..
torture analyzer: fix state explosion on va_arg [PR106413] 2022-07-22 19:50:54 -04:00
20020129-1.c
CVE-2005-1689-dedupe-issue-2.c
CVE-2005-1689-dedupe-issue.c
CVE-2005-1689-minimal.c
abort.c
abs-1.c
aliasing-1.c
aliasing-2.c
aliasing-3.c
alloca-leak.c
allocation-size-1.c gcc.dg/analyzer/allocation-size-1..5.c: Fix for 32-bit newlib targets 2022-07-05 02:00:21 +02:00
allocation-size-2.c gcc.dg/analyzer/allocation-size-1..5.c: Fix for 32-bit newlib targets 2022-07-05 02:00:21 +02:00
allocation-size-3.c gcc.dg/analyzer/allocation-size-1..5.c: Fix for 32-bit newlib targets 2022-07-05 02:00:21 +02:00
allocation-size-4.c gcc.dg/analyzer/allocation-size-1..5.c: Fix for 32-bit newlib targets 2022-07-05 02:00:21 +02:00
allocation-size-5.c gcc.dg/analyzer/allocation-size-1..5.c: Fix for 32-bit newlib targets 2022-07-05 02:00:21 +02:00
analyzer-decls.h
analyzer-verbosity-0.c
analyzer-verbosity-1.c
analyzer-verbosity-2.c
analyzer-verbosity-2a.c
analyzer-verbosity-3.c
analyzer-verbosity-3a.c
analyzer.exp
asm-x86-1.c
asm-x86-dyndbg-1.c
asm-x86-dyndbg-2.c
asm-x86-lp64-1.c
asm-x86-lp64-2.c
attr-const-1.c
attr-const-2.c
attr-const-3.c
attr-malloc-1.c
attr-malloc-2.c
attr-malloc-4.c
attr-malloc-5.c
attr-malloc-6.c
attr-malloc-CVE-2019-19078-usb-leak.c
attr-malloc-misuses.c
attr-tainted_args-1.c
attr-tainted_args-misuses.c
attribute-nonnull.c
bitfields-1.c
boxed-malloc-1.c
bzero-1.c
bzip2-arg-parse-1.c
call-summaries-1.c
callbacks-1.c
callbacks-2.c
callbacks-3.c
calloc-1.c
capacity-1.c
capacity-2.c
capacity-3.c
casts-1.c
casts-2.c
clobbers-1.c
clobbers-2.c
combined-conditionals-1.c
compound-assignment-1.c
compound-assignment-2.c
compound-assignment-3.c
compound-assignment-4.c
compound-assignment-5.c
conditionals-3.c
conditionals-notrans.c
conditionals-trans.c
data-model-1.c
data-model-2.c
data-model-4.c
data-model-5.c
data-model-5b.c
data-model-5c.c
data-model-5d.c
data-model-7.c
data-model-8.c
data-model-9.c
data-model-10.c
data-model-11.c
data-model-12.c
data-model-13.c
data-model-14.c
data-model-15.c
data-model-16.c
data-model-17.c
data-model-18.c
data-model-19.c
data-model-20.c
data-model-21.c
data-model-22.c
data-model-23.c
data-model-path-1.c
describe-1.c
disabling.c
dot-output.c
double-free-lto-1-a.c
double-free-lto-1-b.c
double-free-lto-1.h
dump-state.c
edges-1.c
edges-2.c
equivalence.c
error-1.c
error-2.c
error-3.c
escaping-1.c
expect-1.c
explode-1.c
explode-2.c
explode-2a.c
factorial.c
fd-1.c analyzer: support for creat, dup, dup2 and dup3 [PR106298] 2022-08-02 22:22:15 +05:30
fd-2.c analyzer: support for creat, dup, dup2 and dup3 [PR106298] 2022-08-02 22:22:15 +05:30
fd-3.c analyzer: convert tests with dos2unix 2022-07-25 19:33:16 +02:00
fd-4.c analyzer: support for creat, dup, dup2 and dup3 [PR106298] 2022-08-02 22:22:15 +05:30
fd-5.c analyzer: convert tests with dos2unix 2022-07-25 19:33:16 +02:00
fd-dup-1.c analyzer: support for creat, dup, dup2 and dup3 [PR106298] 2022-08-02 22:22:15 +05:30
fd-meaning.c analyzer: add get_meaning_for_state_change vfunc to fd_diagnostic in sm-fd.cc [PR106286] 2022-07-27 19:16:43 +05:30
feasibility-1.c
feasibility-2.c
feasibility-3.c
fgets-1.c
fibonacci.c
fields.c
file-1.c
file-2.c
file-3.c
file-meaning-1.c
file-paths-1.c
file-pr58237.c
first-field-1.c
first-field-2.c
fread-1.c
fread-2.c
function-ptr-1.c
function-ptr-2.c
function-ptr-3.c
function-ptr-4.c
function-ptr-5.c New warning: -Wanalyzer-jump-through-null [PR105947] 2022-08-05 19:45:41 -04:00
getchar-1.c
gzio-2.c
gzio-3.c
gzio-3a.c
gzio.c
infinite-recursion.c
init.c
inlining-1-multiline.c
inlining-1-no-undo.c
inlining-1.c
inlining-2-multiline.c
inlining-2.c
inlining-3-multiline.c
inlining-3.c
inlining-4-multiline.c
inlining-4.c
inlining-5-multiline.c
inlining-5.c
inlining-6-multiline.c
inlining-6.c
inlining-7-multiline.c
inlining-7.c
invalid-shift-1.c
leak-2.c
leak-3.c
leak-4.c
loop-0-up-to-n-by-1-with-iter-obj.c
loop-0-up-to-n-by-1.c
loop-2.c
loop-2a.c
loop-3.c
loop-4.c
loop-n-down-to-1-by-1.c
loop-start-down-to-end-by-1.c
loop-start-down-to-end-by-step.c
loop-start-to-end-by-step.c
loop-start-up-to-end-by-1.c
loop.c
malloc-1.c
malloc-2.c
malloc-3.c
malloc-4.c
malloc-5.c
malloc-callbacks.c
malloc-dce.c
malloc-dedupe-1.c
malloc-in-loop.c
malloc-ipa-1.c
malloc-ipa-2.c
malloc-ipa-3.c
malloc-ipa-4.c
malloc-ipa-5.c
malloc-ipa-6.c
malloc-ipa-7.c
malloc-ipa-8-double-free.c
malloc-ipa-8-lto-a.c
malloc-ipa-8-lto-b.c
malloc-ipa-8-lto-c.c
malloc-ipa-8-lto.h
malloc-ipa-8-unchecked.c
malloc-ipa-9.c
malloc-ipa-10.c
malloc-ipa-11.c
malloc-ipa-12.c
malloc-ipa-13.c
malloc-ipa-13a.c
malloc-macro-inline-events.c
malloc-macro-separate-events.c
malloc-macro.h
malloc-many-paths-1.c
malloc-many-paths-2.c
malloc-many-paths-3.c
malloc-meaning-1.c
malloc-paths-1.c
malloc-paths-2.c
malloc-paths-3.c
malloc-paths-4.c
malloc-paths-5.c
malloc-paths-6.c
malloc-paths-7.c
malloc-paths-8.c
malloc-paths-9.c
malloc-paths-10.c
malloc-sarif-1.c
malloc-vs-local-1a.c
malloc-vs-local-1b.c
malloc-vs-local-2.c
malloc-vs-local-3.c
malloc-vs-local-4.c
many-disabled-diagnostics.c
many-unused-locals.c
memcpy-1.c
memcpy-2.c analyzer: fix ICE in binding_cluster ctor [PR106401] 2022-07-22 19:50:37 -04:00
memset-1.c
memset-2.c
memset-CVE-2017-18549-1.c
operations.c
params-2.c
params.c
paths-1.c
paths-1a.c
paths-2.c
paths-3.c
paths-4.c
paths-5.c
paths-6.c
paths-7.c
paths-8.c
pattern-test-1.c
pattern-test-2.c
phi-1.c
phi-2.c
pointer-merging.c
pr61861.c
pr93032-mztools-signed-char.c
pr93032-mztools-simplified.c
pr93032-mztools-unsigned-char.c
pr93290.c
pr93352.c
pr93355-localealias-feasibility-2.c
pr93355-localealias-feasibility-3.c
pr93355-localealias-feasibility.c
pr93355-localealias-simplified.c
pr93355-localealias.c
pr93375.c
pr93382.c
pr93457.c
pr93546.c
pr93547.c
pr93669.c
pr93695-1.c
pr93938.c
pr94047.c
pr94099.c
pr94105.c
pr94362-1.c
pr94362-2.c
pr94399.c
pr94447.c
pr94458.c
pr94579.c
pr94596.c
pr94639.c
pr94640.c
pr94688.c
pr94689.c
pr94732.c
pr94754.c
pr94839.c
pr94851-1.c
pr94851-2.c
pr94851-3.c
pr94851-4.c
pr94858-1.c
pr94858-2.c
pr95000-1.c
pr95026.c
pr95152-4.c
pr95152-5.c
pr95240.c
pr96598.c
pr96611.c
pr96639.c
pr96642.c
pr96644.c
pr96646.c
pr96648.c
pr96650-1-notrans.c
pr96650-1-trans.c
pr96650-2-notrans.c
pr96650-2-trans.c
pr96651-1.c
pr96651-2.c
pr96653.c
pr96699.c
pr96705.c
pr96713.c
pr96764.c
pr96777.c
pr96792.c
pr96841.c
pr96860-1.c
pr96860-2.c
pr97029.c
pr97072.c
pr97074.c
pr97130.c
pr97233.c
pr97514.c
pr97568.c
pr97608.c
pr97668.c
pr98073.c
pr98293.c
pr98564.c
pr98575-1.c
pr98580-a.c
pr98580-b.c
pr98599-a.c
pr98599-b.c
pr98628.c
pr98918.c
pr98969.c
pr99042.c
pr99044-1.c
pr99044-2.c
pr99193-1.c
pr99193-2.c
pr99193-3.c
pr99269.c
pr99716-1.c
pr99716-2.c
pr99716-3.c
pr99771-1.c
pr99774-1.c
pr99774-2.c
pr99886.c
pr99906.c
pr100011.c
pr100546.c
pr100615.c
pr101143.c
pr101503.c
pr101547.c
pr101570.c
pr101721.c
pr101837.c
pr101875.c
pr101962.c
pr101983-main.c
pr101983-not-main.c
pr102692-2.c
pr102695.c
pr103217-2.c
pr103217-3.c
pr103217-4.c
pr103217-5.c
pr103217.c
pr103526.c
pr103892.c
pr104029.c
pr104062.c
pr104089.c
pr104224.c
pr104308.c
pr104369-1.c
pr104369-2.c
pr104417.c
pr104434-const.c
pr104434-nonconst.c
pr104434.h
pr104452.c
pr104524.c
pr104560-1.c
pr104560-2.c
pr105074.c
pr105087-1.c
pr105087-2.c
pr105252.c
pr105365.c
pr105366.c
pr106394.c Fix handling of zero capacity regions in -Wanalyzer-allocation-size [PR106394] 2022-07-22 21:46:51 +02:00
pragma-1.c
pragma-2.c
putenv-1.c analyzer: new warning: -Wanalyzer-putenv-of-auto-var [PR105893] 2022-07-28 17:21:29 -04:00
realloc-1.c
realloc-2.c
realloc-3.c
realloc-4.c
refcounting-1.c
rhbz1878600.c
scope-1.c
sensitive-1.c
setjmp-1.c
setjmp-2.c
setjmp-3.c
setjmp-4.c
setjmp-5.c
setjmp-6.c
setjmp-7.c
setjmp-7a.c
setjmp-8.c
setjmp-9.c
setjmp-pr93378.c
signal-1.c
signal-2.c
signal-3.c
signal-4a.c
signal-4b.c
signal-5.c
signal-6.c
signal-exit.c
signal-registration-loc.c
sigsetjmp-5.c
sigsetjmp-6.c
single-field.c
sock-1.c
sock-2.c
stale-frame-1.c
stdarg-1.c
stdarg-2.c
stdarg-3.c analyzer: fix -Wanalyzer-va-list-exhausted false +ve on va_arg in subroutine [PR106383] 2022-07-21 17:29:26 -04:00
stdarg-fmtstring-1.c
stdarg-lto-1-a.c
stdarg-lto-1-b.c
stdarg-lto-1.h
stdarg-sentinel-1.c
stdarg-types-1.c
stdarg-types-2.c
stdarg-types-3.c analyzer: fix false +ves from -Wanalyzer-va-arg-type-mismatch on int promotion [PR106319] 2022-07-26 17:17:18 -04:00
stdarg-types-4.c analyzer: fix false +ves from -Wanalyzer-va-arg-type-mismatch on int promotion [PR106319] 2022-07-26 17:17:18 -04:00
strchr-1.c
strcmp-1.c
strcpy-1.c
strcpy-2.c
strdup-1.c
strndup-1.c
switch.c
symbolic-1.c
symbolic-2.c
symbolic-3.c
symbolic-4.c
symbolic-5.c
symbolic-6.c
symbolic-7.c
symbolic-8.c
symbolic-9.c
symbolic-12.c
taint-CVE-2011-2210-1.c
taint-CVE-2020-13143-1.c
taint-CVE-2020-13143-2.c
taint-CVE-2020-13143.h
taint-alloc-1.c
taint-alloc-2.c
taint-alloc-3.c
taint-alloc-4.c
taint-alloc-5.c
taint-divisor-1.c analyzer: fix false positives from -Wanalyzer-tainted-divisor [PR106225] 2022-07-07 15:50:26 -04:00
taint-merger.c
taint-ops.c
taint-read-index-1.c
taint-read-offset-1.c
taint-realloc.c
taint-size-1.c
taint-size-access-attr-1.c
taint-write-index-1.c
taint-write-offset-1.c
test-setjmp.h
test-uaccess.h
uninit-1.c
uninit-2.c
uninit-3.c
uninit-4.c
uninit-6.c
uninit-6b.c
uninit-CWE-457-examples.c
uninit-alloca.c
uninit-pr94713.c
uninit-pr94714.c
uninit-pr104576.c
uninit-pr106204.c analyzer: fix uninit false positive with -ftrivial-auto-var-init= [PR106204] 2022-07-06 07:27:45 -04:00
unknown-fns-2.c
unknown-fns-3.c
unknown-fns-4.c
unknown-fns.c
untracked-1.c
untracked-2.c analyzer: fix ICE on untracked decl_regions [PR106374] 2022-07-20 21:34:03 -04:00
unused-local-1.c
use-after-free-2.c
use-after-free-3.c
use-after-free.c
vasprintf-1.c
vla-1.c
write-to-const-1.c
write-to-const-2.c
write-to-function-1.c
write-to-string-literal-1.c
write-to-string-literal-2.c
write-to-string-literal-3.c
write-to-string-literal-4-disabled.c
write-to-string-literal-4.c
write-to-string-literal-5.c
zlib-1.c
zlib-2.c
zlib-3.c
zlib-4.c
zlib-5.c
zlib-6.c
zlib-6a.c