analyzer: fix ICE on NULL change.m_expr [PR100244]
authorDavid Malcolm <dmalcolm@redhat.com>
Sat, 24 Apr 2021 23:49:31 +0000 (19:49 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Sat, 24 Apr 2021 23:49:31 +0000 (19:49 -0400)
commit61bfff562e3b6091d5a0a412a7d496bd523868a8
tree7a0ea8554cc234243438422f4f941458013d4312
parentd0e7833b94953ba6b4a915150666969ad9fc66af
analyzer: fix ICE on NULL change.m_expr [PR100244]

PR analyzer/100244 reports an ICE on a -Wanalyzer-free-of-non-heap
due to a case where free_of_non_heap::describe_state_change can be
passed a NULL change.m_expr for a suitably complicated symbolic value.

Bulletproof it by checking for change.m_expr being NULL before
dereferencing it.

gcc/analyzer/ChangeLog:
PR analyzer/100244
* sm-malloc.cc (free_of_non_heap::describe_state_change):
Bulletproof against change.m_expr being NULL.

gcc/testsuite/ChangeLog:
PR analyzer/100244
* g++.dg/analyzer/pr100244.C: New test.
gcc/analyzer/sm-malloc.cc
gcc/testsuite/g++.dg/analyzer/pr100244.C [new file with mode: 0644]