]> gcc.gnu.org Git - gcc.git/commit
PR c++/84964: Middle-end patch to expand_call for ICE after sorry.
authorRoger Sayle <roger@nextmovesoftware.com>
Thu, 10 Mar 2022 23:49:15 +0000 (23:49 +0000)
committerRoger Sayle <roger@nextmovesoftware.com>
Thu, 10 Mar 2022 23:49:15 +0000 (23:49 +0000)
commita717376e99fb33ba3b06bd8122e884f4b63a60c9
tree95bbd10442a8c9cba05703eff2c8248714db7f4f
parenta8db9b90439f33af9ef602325df1f1e967fc549a
PR c++/84964: Middle-end patch to expand_call for ICE after sorry.

This patch resolves PR c++/84969 which is an ICE in the middle-end after
emitting a "sorry, unimplemented" message, and is a regression from
earlier releases of GCC.  This issue is that after encountering a
function call requiring an unreasonable amount of stack space, the
code continues and falls foul of an assert checking that stack pointer
has been correctly updated.  The fix is to (locally) consider aborted
function calls as "no return", which skips this downstream sanity check.

2022-03-10  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
PR c++/84964
* calls.cc (expand_call): Ignore stack adjustments after sorry.

gcc/testsuite/ChangeLog
PR c++/84964
* g++.dg/other/pr84964.C: New test case.
gcc/calls.cc
gcc/testsuite/g++.dg/other/pr84964.C [new file with mode: 0644]
This page took 0.063835 seconds and 6 git commands to generate.