From a6c3066fb95b521d4b9ca396c115cbe32fab72ee Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Mon, 6 Mar 2017 14:07:37 +0100
Subject: [PATCH] Disable -fcheck-pointer-bounds with sanitizers.
gcc/ChangeLog:
2017-03-06 Martin Liska <mliska@suse.cz>
PR target/65705
PR target/69804
* toplev.c (process_options): Disable -fcheck-pointer-bounds with
sanitizers.
gcc/testsuite/ChangeLog:
2017-03-06 Martin Liska <mliska@suse.cz>
PR target/65705
PR target/69804
* gcc.target/i386/pr71458.c: Update scanned pattern.
---
gcc/testsuite/gcc.target/i386/pr71458.c | 2 +-
gcc/toplev.c | 32 ++++++++++++++++++++------------
2 files changed, 21 insertions(+), 13 deletions(-)
@@ -1,6 +1,6 @@
/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -fsanitize=bounds" } */
-/* { dg-error "-fcheck-pointer-bounds is not supported with -fsanitize=bounds" "" { target *-*-* } 0 } */
+/* { dg-error "-fcheck-pointer-bounds is not supported with Undefined Behavior Sanitizer" "" { target *-*-* } 0 } */
enum {} a[0];
void fn1(int);
@@ -1274,22 +1274,30 @@ process_options (void)
flag_check_pointer_bounds = 0;
}
- if (flag_sanitize & SANITIZE_ADDRESS)
+ if (flag_sanitize)
{
- error_at (UNKNOWN_LOCATION,
- "-fcheck-pointer-bounds is not supported with "
- "Address Sanitizer");
- flag_check_pointer_bounds = 0;
- }
+ if (flag_sanitize & SANITIZE_ADDRESS)
+ error_at (UNKNOWN_LOCATION,
+ "-fcheck-pointer-bounds is not supported with "
+ "Address Sanitizer");
+
+ if (flag_sanitize & (SANITIZE_UNDEFINED | SANITIZE_NONDEFAULT))
+ error_at (UNKNOWN_LOCATION,
+ "-fcheck-pointer-bounds is not supported with "
+ "Undefined Behavior Sanitizer");
+
+ if (flag_sanitize & SANITIZE_LEAK)
+ error_at (UNKNOWN_LOCATION,
+ "-fcheck-pointer-bounds is not supported with "
+ "Leak Sanitizer");
+
+ if (flag_sanitize & SANITIZE_THREAD)
+ error_at (UNKNOWN_LOCATION,
+ "-fcheck-pointer-bounds is not supported with "
+ "Thread Sanitizer");
- if (flag_sanitize & SANITIZE_BOUNDS)
- {
- error_at (UNKNOWN_LOCATION,
- "-fcheck-pointer-bounds is not supported with "
- "-fsanitize=bounds");
flag_check_pointer_bounds = 0;
}
-
}
/* One region RA really helps to decrease the code size. */
--
2.11.1