[Bug target/107209] [13 Regression] ICE: verify_gimple failed (error: statement marked for throw, but doesn't)
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 18 08:29:39 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107209
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|tree-optimization |target
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
_24 = 4.34763122374727917218706352286972105503082275390625e+0;
aarch64_general_gimple_fold_builtin builds
_24 = 3.14159265359000006156975359772332012653350830078125e+0 *
1.3838939999999999574953335468308068811893463134765625e+0;
and then rvrp_folder::fold_stmt folds this further.
Now, aarch64_general_gimple_fold_builtin uses gsi_replace with (..., true)
and so that moves EH info to the new stmt, but then
/* Now cleanup. */
if (did_replace)
{
...
/* If we cleaned up EH information from the statement,
remove EH edges. */
if (maybe_clean_or_replace_eh_stmt (old_stmt, stmt))
bitmap_set_bit (need_eh_cleanup, bb->index);
no longer triggers. So this is a target bug, aarch64 folding should _not_
update EH info, folding shouldn't update any of the on-the-side info.
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 1d0f994f281..890062d359b 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -15157,7 +15157,7 @@ aarch64_gimple_fold_builtin (gimple_stmt_iterator *gsi)
if (!new_stmt)
return false;
- gsi_replace (gsi, new_stmt, true);
+ gsi_replace (gsi, new_stmt, false);
return true;
}
fixes this. aarch64 folks please test&push.
More information about the Gcc-bugs
mailing list