re PR target/65044 (ICE: SIGSEGV in contains_struct_check with -fsanitize=address -fcheck-pointer-bounds)

gcc/

	PR target/65044
	* toplev.c (process_options): Restrict Pointer Bounds Checker
	usage with Address Sanitizer.

gcc/testsuite/

	PR target/65044
	* gcc.target/i386/pr65044.c: New.

From-SVN: r221379
This commit is contained in:
Ilya Enkovich 2015-03-12 09:23:06 +00:00 committed by Ilya Enkovich
parent 90d33d8fc9
commit 1b89b8f062
4 changed files with 34 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
PR target/65044
* toplev.c (process_options): Restrict Pointer Bounds Checker
usage with Address Sanitizer.
2015-03-12 Richard Biener <rguenther@suse.de>
* tree-cfg.c (gimple_split_block): Remove loop finding stmt

View File

@ -1,3 +1,8 @@
2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
PR target/65044
* gcc.target/i386/pr65044.c: New.
2015-03-12 Tom de Vries <tom@codesourcery.com>
PR rtl-optimization/64895

View File

@ -0,0 +1,12 @@
/* { dg-error "-fcheck-pointer-bounds is not supported with Address Sanitizer" } */
/* { dg-do compile } */
/* { dg-require-effective-target mpx } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -fsanitize=address" } */
extern int x[];
void
foo ()
{
x[0] = 0;
}

View File

@ -1375,7 +1375,17 @@ process_options (void)
if (flag_check_pointer_bounds)
{
if (targetm.chkp_bound_mode () == VOIDmode)
error ("-fcheck-pointer-bounds is not supported for this target");
{
error ("-fcheck-pointer-bounds is not supported for this target");
flag_check_pointer_bounds = 0;
}
if (flag_sanitize & SANITIZE_ADDRESS)
{
error ("-fcheck-pointer-bounds is not supported with "
"Address Sanitizer");
flag_check_pointer_bounds = 0;
}
}
/* One region RA really helps to decrease the code size. */