Hello,

Revision 241896 added -fsanitize-address-use-after-scope and enabled
it whenever any sanitizer is enabled. This caused problems for kernel
which does not have necessary callbacks for
-fsanitize-address-use-after-scope. I've added the callbacks to kernel
tip, but older kernel branches still don't have them.

So enable -fsanitize-address-use-after-scope iff -fsanitize=address is
enabled. In the kernel we will check if
-fsanitize-address-use-after-scope is present and enable it only on
versions that have the callbacks.
As a side effect this also doesn't enable
-fsanitize-address-use-after-scope for e.g. -fsanitize=thread, which
is I believe unnecessary.

OK for trunk?
Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog	(revision 243344)
+++ gcc/ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2016-12-07  Dmitry Vyukov  <dvyu...@google.com>
+
+	* opts.c (finish_options): Enable
+	-fsanitize-address-use-after-scope only if
+	-fsanitize=address is enabled (not
+	-fsanitize=kernel-address).
+
 2016-12-07  Bin Cheng  <bin.ch...@arm.com>
 
 	PR tree-optimization/78691
Index: gcc/opts.c
===================================================================
--- gcc/opts.c	(revision 243344)
+++ gcc/opts.c	(working copy)
@@ -990,7 +990,7 @@
 
   /* Enable -fsanitize-address-use-after-scope if address sanitizer is
      enabled.  */
-  if (opts->x_flag_sanitize
+  if ((opts->x_flag_sanitize & SANITIZE_USER_ADDRESS)
       && !opts_set->x_flag_sanitize_address_use_after_scope)
     opts->x_flag_sanitize_address_use_after_scope = true;
 

Reply via email to