From 47f447b17d43726d2eef73592f80a25bcafa94e9 Mon Sep 17 00:00:00 2001
From: Jack Howarth <howarth@bromo.med.uc.edu>
Date: Wed, 21 Oct 2009 15:07:59 +0000
Subject: [PATCH] re PR c++/41313 (r150553 causes g++.dg/tree-prof/partition1.C
 compilation and execution test failures on *-apple-darwin*)

2009-10-21  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR c++/41313
	* gcc/config/darwin10.h: Use default_emit_unwind_label.
	* gcc/config/darwin.c: Disable -freorder-blocks-and-partition
	when darwin_emit_unwind_label is used.

From-SVN: r153057
---
 gcc/ChangeLog         |  7 +++++++
 gcc/config/darwin.c   | 11 +++++++++++
 gcc/config/darwin10.h |  5 +++++
 3 files changed, 23 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4b96a2f00dbc..4b54c31c07bf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-10-21  Jack Howarth  <howarth@bromo.med.uc.edu>
+
+	PR c++/41313
+	* gcc/config/darwin10.h: Use default_emit_unwind_label.
+	* gcc/config/darwin.c: Disable -freorder-blocks-and-partition
+	when darwin_emit_unwind_label is used.
+
 2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index a8933e66348f..b5c4fb8e0d96 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1697,6 +1697,17 @@ darwin_override_options (void)
   if (dwarf_strict < 0) 
     dwarf_strict = 1;
 
+  /* Disable -freorder-blocks-and-partition for darwin_emit_unwind_label.  */
+  if (flag_reorder_blocks_and_partition 
+      && (targetm.asm_out.unwind_label == darwin_emit_unwind_label))
+    {
+      inform (input_location,
+              "-freorder-blocks-and-partition does not work with exceptions "
+              "on this architecture");
+      flag_reorder_blocks_and_partition = 0;
+      flag_reorder_blocks = 1;
+    }
+
   if (flag_mkernel || flag_apple_kext)
     {
       /* -mkernel implies -fapple-kext for C++ */
diff --git a/gcc/config/darwin10.h b/gcc/config/darwin10.h
index 65ba2632a8f2..b1edf36ce3d5 100644
--- a/gcc/config/darwin10.h
+++ b/gcc/config/darwin10.h
@@ -23,3 +23,8 @@ unwinder in libSystem is fixed to digest new epilog unwinding notes. */
 
 #undef LIB_SPEC
 #define LIB_SPEC "%{!static:-no_compact_unwind -lSystem}"
+
+/* Unwind labels are no longer required in darwin10.  */
+
+#undef TARGET_ASM_EMIT_UNWIND_LABEL
+#define TARGET_ASM_EMIT_UNWIND_LABEL default_emit_unwind_label
-- 
GitLab