aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDehao Chen <dehao@google.com>2015-06-24 00:40:10 +0000
committerDehao Chen <dehao@google.com>2015-06-24 00:40:10 +0000
commitfad4c9c3d34a0173253548083dfc1782f77811be (patch)
tree7d9d7b91c75929df7fba34a3926de20fef789fbc
parent02b1fb0072a35d6604d3337f8e5fab8b19449f55 (diff)
Disable reorder_blocks_and_partition for DWARF2 unwinding with -fexception.
2015-06-23 Dehao Chen <dehao@google.com> * opts.c(finish_options): Disable reorder_blocks_and_partition for DWARF2. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/google/gcc-4_9@224863 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/opts.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index ac589412c3b..e999ed02cd0 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -734,13 +734,15 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
sections of the .o and executable files does not work (currently)
with exception handling. This is because there is no support for
generating unwind info. If opts->x_flag_exceptions is turned on
- we need to turn off the partitioning optimization. */
+ we need to turn off the partitioning optimization.
+ Enforcing this for DWARF2 based unwinding too because it could lead
+ to segfault. */
ui_except = targetm_common.except_unwind_info (opts);
if (opts->x_flag_exceptions
&& opts->x_flag_reorder_blocks_and_partition
- && (ui_except == UI_SJLJ || ui_except >= UI_TARGET))
+ && (ui_except >= UI_SJLJ))
{
if (opts_set->x_flag_reorder_blocks_and_partition)
inform (loc,