diff options
author | Jack Howarth <howarth@bromo.med.uc.edu> | 2009-10-21 15:07:59 +0000 |
---|---|---|
committer | Peter O'Gorman <pogma@gcc.gnu.org> | 2009-10-21 15:07:59 +0000 |
commit | 47f447b17d43726d2eef73592f80a25bcafa94e9 (patch) | |
tree | 458b28857685ed2fd4c0116eb04950cda554dd69 /gcc | |
parent | ad0abd3c9040a5085d7833cb964e94ce2ec59069 (diff) | |
download | gcc-47f447b17d43726d2eef73592f80a25bcafa94e9.tar.gz |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/darwin.c | 11 | ||||
-rw-r--r-- | gcc/config/darwin10.h | 5 |
3 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4b96a2f00db..4b54c31c07b 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 a8933e66348..b5c4fb8e0d9 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 65ba2632a8f..b1edf36ce3d 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 |