analyzer: fix ICE and false positive with -Wanalyzer-deref-before-check [PR114408]
commit80a0cb37456c49dbc25cca7cd554f78bc504373e
authorDavid Malcolm <dmalcolm@redhat.com>
Sat, 23 Mar 2024 13:52:38 +0000 (23 09:52 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Sat, 23 Mar 2024 13:52:38 +0000 (23 09:52 -0400)
tree94d28adaad6f7ece21869683d69e407b56cfacc9
parent2e4b3374cb7af10e188bb5100526ad3150b9b272
analyzer: fix ICE and false positive with -Wanalyzer-deref-before-check [PR114408]

gcc/analyzer/ChangeLog:
PR analyzer/114408
* engine.cc (impl_run_checkers): Free up any dominance info that
we may have created.
* kf.cc (class kf_ubsan_handler): New.
(register_sanitizer_builtins): New.
(register_known_functions): Call register_sanitizer_builtins.

gcc/testsuite/ChangeLog:
PR analyzer/114408
* c-c++-common/analyzer/deref-before-check-pr114408.c: New test.
* c-c++-common/ubsan/analyzer-ice-pr114408.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/engine.cc
gcc/analyzer/kf.cc
gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr114408.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/ubsan/analyzer-ice-pr114408.c [new file with mode: 0644]