diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2004-11-23 02:15:16 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2004-11-23 02:15:16 +0000 |
commit | 0bb360df4ca478da0350f238e73f60139d7e34d9 (patch) | |
tree | 8829e87537d81b928913492b165b91a772916d7d /gcc | |
parent | 69d3c9a43e5e9ec99d5117a0c080b1ad45cf45d0 (diff) | |
download | gcc-0bb360df4ca478da0350f238e73f60139d7e34d9.zip gcc-0bb360df4ca478da0350f238e73f60139d7e34d9.tar.gz gcc-0bb360df4ca478da0350f238e73f60139d7e34d9.tar.bz2 |
re PR rtl-optimization/14838 (ICE when building with -O2 -g)
PR rtl-optimization/14838
* emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
note.
(get_last_nonnote_insn): Don't assume last insn is a note.
From-SVN: r91065
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 20 |
2 files changed, 11 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4604a92..b4126fd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-11-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR rtl-optimization/14838 + * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a + note. + (get_last_nonnote_insn): Don't assume last insn is a note. + 2004-11-22 Roger Sayle <roger@eyesopen.com> * fold-const.c (nondestructive_fold_binary_to_constant): Rename diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 051dd15..5f2d8b2 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2738,15 +2738,9 @@ get_last_insn_anywhere (void) rtx get_first_nonnote_insn (void) { - rtx insn = first_insn; - - while (insn) - { - insn = next_insn (insn); - if (insn == 0 || !NOTE_P (insn)) - break; - } + rtx insn; + for (insn = first_insn; insn && NOTE_P (insn); insn = next_insn (insn)); return insn; } @@ -2756,15 +2750,9 @@ get_first_nonnote_insn (void) rtx get_last_nonnote_insn (void) { - rtx insn = last_insn; - - while (insn) - { - insn = previous_insn (insn); - if (insn == 0 || !NOTE_P (insn)) - break; - } + rtx insn; + for (insn = last_insn; insn && NOTE_P (insn); insn = previous_insn (insn)); return insn; } |