Fix ia64-linux glibc intl/loadmsgcat.c miscompilation.

* ifcvt.c (noce_process_if_block): If A and B are the same, and no
	else block, and X has side-effects, then fail.

From-SVN: r36373
This commit is contained in:
Jim Wilson 2000-09-12 19:06:05 +00:00 committed by Jim Wilson
parent 3e80ddc742
commit cc2999aaf6
2 changed files with 10 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2000-09-12 Jim Wilson <wilson@cygnus.com>
* ifcvt.c (noce_process_if_block): If A and B are the same, and no
else block, and X has side-effects, then fail.
2000-09-12 Greg McGary <greg@mcgary.org>
* config/mips/mips-protos.h

View file

@ -1247,6 +1247,11 @@ noce_process_if_block (test_bb, then_bb, else_bb, join_bb)
reorder_insns (insn_b, insn_b, PREV_INSN (if_info.cond_earliest));
insn_b = NULL_RTX;
}
/* If we have "x = b; if (...) x = a;", and x has side-effects, then
x must be executed twice. */
else if (insn_b && side_effects_p (orig_x))
return FALSE;
x = orig_x;
goto success;
}