aboutsummaryrefslogtreecommitdiff
path: root/gcc/caller-save.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2003-12-07 13:05:43 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-12-07 13:05:43 +0000
commitdf5e8205e0893ba79b754ee097d7070abd3b680b (patch)
tree4fc0eacaf5bee70d8056e103f0008fb589332fab /gcc/caller-save.c
parent6e3f3080d50a4ca61aac350dd3ecdfc464fd2f2d (diff)
downloadgcc-df5e8205e0893ba79b754ee097d7070abd3b680b.zip
gcc-df5e8205e0893ba79b754ee097d7070abd3b680b.tar.gz
gcc-df5e8205e0893ba79b754ee097d7070abd3b680b.tar.bz2
re PR rtl-optimization/12965 (SEGV+ICE in cc1plus on alpha-linux with -O2)
PR optimization/12965 * caller-save.c (save_call_clobbered_regs): Do not save/restore registers around no-return calls. From-SVN: r74389
Diffstat (limited to 'gcc/caller-save.c')
-rw-r--r--gcc/caller-save.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index d40c8d9..7467385 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -408,7 +408,7 @@ save_call_clobbered_regs (void)
regno += insert_restore (chain, 1, regno, MOVE_MAX_WORDS, save_mode);
}
- if (code == CALL_INSN)
+ if (code == CALL_INSN && ! find_reg_note (insn, REG_NORETURN, NULL))
{
int regno;
HARD_REG_SET hard_regs_to_save;