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:
parent
3e80ddc742
commit
cc2999aaf6
2 changed files with 10 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue