aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2003-07-05 16:40:59 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2003-07-05 14:40:59 +0000
commit65c6f1b45f6440d1e245aaf2a97639c7dc4314c3 (patch)
treeb51b498c5ca943b9565eaefb10b25dbe1c28556e
parente865267810dd2f02d40f4e30307611cf51df344f (diff)
downloadgcc-65c6f1b45f6440d1e245aaf2a97639c7dc4314c3.zip
gcc-65c6f1b45f6440d1e245aaf2a97639c7dc4314c3.tar.gz
gcc-65c6f1b45f6440d1e245aaf2a97639c7dc4314c3.tar.bz2
Sat Jul 5 16:18:53 CEST 2003 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
Blame to Jan Hubicka <jh@suse.cz> * cfglayout.c (record_effective_endpoints): Split insns before first basic block correctly. From-SVN: r68973
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfglayout.c21
2 files changed, 15 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 04fa53e..bb80f8f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Sat Jul 5 16:18:53 CEST 2003 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Blame to Jan Hubicka <jh@suse.cz>
+ * cfglayout.c (record_effective_endpoints): Split insns before
+ first basic block correctly.
+
2003-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (expand_expr, case COMPONENT_REF): When seeing if should use
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 3a6b925..08d20e1 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -196,19 +196,16 @@ record_effective_endpoints (void)
rtx insn;
for (insn = get_insns ();
- NEXT_INSN (insn) && GET_CODE (insn) == NOTE;
+ insn
+ && GET_CODE (insn) == NOTE
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK;
insn = NEXT_INSN (insn))
- {
- if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_BASIC_BLOCK)
- {
- insn = NULL;
- break;
- }
- if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG)
- break;
- }
- if (insn)
- cfg_layout_function_header = unlink_insn_chain (get_insns (), insn);
+ continue;
+ if (!insn)
+ abort (); /* No basic blocks at all? */
+ if (PREV_INSN (insn))
+ cfg_layout_function_header =
+ unlink_insn_chain (get_insns (), PREV_INSN (insn));
else
cfg_layout_function_header = NULL_RTX;