aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2004-11-23 02:15:16 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2004-11-23 02:15:16 +0000
commit0bb360df4ca478da0350f238e73f60139d7e34d9 (patch)
tree8829e87537d81b928913492b165b91a772916d7d /gcc
parent69d3c9a43e5e9ec99d5117a0c080b1ad45cf45d0 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/emit-rtl.c20
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;
}