aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/tree-cfgcleanup.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index f8169ee..f2edd3f 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -212,7 +212,11 @@ static void
cleanup_call_ctrl_altering_flag (basic_block bb, gimple *bb_end)
{
if (!is_gimple_call (bb_end)
- || !gimple_call_ctrl_altering_p (bb_end))
+ || !gimple_call_ctrl_altering_p (bb_end)
+ || (/* IFN_UNIQUE should be the last insn, to make checking for it
+ as cheap as possible. */
+ gimple_call_internal_p (bb_end)
+ && gimple_call_internal_unique_p (bb_end)))
return;
int flags = gimple_call_flags (bb_end);