analyzer: fix ICE on unhandled tree codes in get_rvalue_1 [PR96641]
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 17 Aug 2020 22:18:00 +0000 (18:18 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Tue, 18 Aug 2020 00:46:49 +0000 (20:46 -0400)
commit2242b975c08e150dd712d8e64341cae8457788ef
tree0cc506818c3f7d93c61c4d5aae8f0280faa05541
parent1b0be822208349b2795381deace2352e998c1ad0
analyzer: fix ICE on unhandled tree codes in get_rvalue_1 [PR96641]

The old implementation of region_model::get_rvalue_1 gracefully handled
tree codes it didn't understand, returning "UNKNOWN", whereas the new
implementation (r11-2694-g808f4dfeb3a95f50f15e71148e5c1067f90a126d) had
an assertion left over from development, leading to ICEs.

This patch restores the old behavior for these cases.

gcc/analyzer/ChangeLog:
PR analyzer/96641
* region-model.cc (region_model::get_rvalue_1): Handle
unrecognized tree codes by returning "UNKNOWN.

gcc/testsuite/ChangeLog:
PR analyzer/96641
* g++.dg/analyzer/pr96641.C: New test.
gcc/analyzer/region-model.cc
gcc/testsuite/g++.dg/analyzer/pr96641.C [new file with mode: 0644]