diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-12-07 13:05:43 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-12-07 13:05:43 +0000 |
commit | df5e8205e0893ba79b754ee097d7070abd3b680b (patch) | |
tree | 4fc0eacaf5bee70d8056e103f0008fb589332fab /gcc/caller-save.c | |
parent | 6e3f3080d50a4ca61aac350dd3ecdfc464fd2f2d (diff) | |
download | gcc-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.c | 2 |
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; |