All feedback from the earlier version has been taken into account now.
This patch adds the -fasynchronous-unwind-tables option to compilations when
the -fsanitize=address option is seen but not if any
-fasynchronous-unwind-tables options were already specified.
-fasynchronous-unwind-tables causes a full strack trace to be produced when
the sanitizer detects an error. Without the full trace several of the asan
test cases fail on powerpc.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65479 for more information.
Bootstrapped and tested on powerpc64le-unknown-linux-gnu,
powerpc64be-unknown-linux-gnu, and x86_64-pc-linux-gnu with no regressions.
Is this ok for trunk?
[gcc]
2016-12-21 Bill Seurer <seurer@linux.vnet.ibm.com>
PR sanitizer/65479
* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
-fasynchronous-unwind-tables option when -fsanitize=address is
specified.
From-SVN: r243863
+2016-12-21 Bill Seurer <seurer@linux.vnet.ibm.com>
+
+ PR sanitizer/65479
+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
+ -fasynchronous-unwind-tables option when -fsanitize=address is
+ specified.
+
2016-12-21 Bernd Schmidt <bschmidt@redhat.com>
PR target/71321
&& !global_options_set.x_flag_ira_loop_pressure)
flag_ira_loop_pressure = 1;
+ /* -fsanitize=address needs to turn on -fasynchronous-unwind-tables in order
+ for tracebacks to be complete but not if any -fasynchronous-unwind-tables
+ options were already specified. */
+ if (flag_sanitize & SANITIZE_USER_ADDRESS
+ && !global_options_set.x_flag_asynchronous_unwind_tables)
+ flag_asynchronous_unwind_tables = 1;
+
/* Set the pointer size. */
if (TARGET_64BIT)
{