aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-phiopt.cc
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2023-12-08 13:33:55 -0500
committerPatrick Palka <ppalka@redhat.com>2023-12-08 13:33:55 -0500
commit5764825aed613f201a8bc47e5b239027a39691f0 (patch)
tree654cb27057815c9593aab71e627f984f4dc2a91d /gcc/tree-ssa-phiopt.cc
parentd468718c9a097aeb8794fb1a2df6db2c1064d7f7 (diff)
downloadgcc-5764825aed613f201a8bc47e5b239027a39691f0.zip
gcc-5764825aed613f201a8bc47e5b239027a39691f0.tar.gz
gcc-5764825aed613f201a8bc47e5b239027a39691f0.tar.bz2
c++: undiagnosed error_mark_node from cp_build_c_cast [PR112658]
When cp_build_c_cast commits to an erroneous const_cast, we neglect to replay errors from build_const_cast_1 which can lead to us incorrectly accepting (and "miscompiling") the cast, or triggering the assert in finish_expr_stmt. This patch fixes this oversight. This was the original fix for the ICE in PR112658 before r14-5941-g305a2686c99bf9 made us accept the testcase there after all. I wasn't able to come up with an alternate testcase for which this fix has an effect anymore, but below is a reduced version of the PR112658 testcase (accepted ever since r14-5941) for good measure. PR c++/112658 PR c++/94264 gcc/cp/ChangeLog: * typeck.cc (cp_build_c_cast): If we're committed to a const_cast and the result is erroneous, call build_const_cast_1 a second time to issue errors. Use complain=tf_none instead of =false. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/initlist-array20.C: New test.
Diffstat (limited to 'gcc/tree-ssa-phiopt.cc')
0 files changed, 0 insertions, 0 deletions