diff options
author | Dehao Chen <dehao@google.com> | 2015-06-24 00:40:10 +0000 |
---|---|---|
committer | Dehao Chen <dehao@google.com> | 2015-06-24 00:40:10 +0000 |
commit | fad4c9c3d34a0173253548083dfc1782f77811be (patch) | |
tree | 7d9d7b91c75929df7fba34a3926de20fef789fbc | |
parent | 02b1fb0072a35d6604d3337f8e5fab8b19449f55 (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.c | 6 |
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, |