aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/bb-reorder.c2
-rw-r--r--gcc/cfgrtl.c10
3 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 839e648..6c446a7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
+ failure on solaris. Place ifdef HAVE_return around gen_ret call.
+ * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
+ HAVE_return and place it around the place where it is needed.
+
2004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
* varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index ae335c1..022cb33 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -1684,9 +1684,11 @@ fix_crossing_conditional_branches (void)
(old_label),
BB_END (new_bb));
}
+#ifdef HAVE_return
else if (GET_CODE (old_label) == RETURN)
new_jump = emit_jump_insn_after (gen_return (),
BB_END (new_bb));
+#endif
else
abort ();
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 2e09ba2..461eb34 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -57,11 +57,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "cfglayout.h"
#include "expr.h"
-/* Stubs in case we don't have a return insn. */
-#ifndef HAVE_return
-#define HAVE_return 0
-#define gen_return() NULL_RTX
-#endif
/* The labels mentioned in non-jump rtl. Valid during find_basic_blocks. */
/* ??? Should probably be using LABEL_NUSES instead. It would take a
@@ -1134,10 +1129,11 @@ force_nonfallthru_and_redirect (edge e, basic_block target)
e->flags &= ~EDGE_FALLTHRU;
if (target == EXIT_BLOCK_PTR)
{
- if (HAVE_return)
+#ifdef HAVE_return
emit_jump_insn_after (gen_return (), BB_END (jump_block));
- else
+#else
abort ();
+#endif
}
else
{