re PR target/67278 (ICE: verify_gimple failed on darwin 14.5 x86_64)

2016-03-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/67278
	* tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.

	* gcc.dg/simd-7.c: New testcase.

From-SVN: r233897
This commit is contained in:
Richard Biener 2016-03-02 08:16:16 +00:00 committed by Richard Biener
parent 22c72158a4
commit 218db463e0
4 changed files with 31 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2016-03-02 Richard Biener <rguenther@suse.de>
PR middle-end/67278
* tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
2016-03-02 Marek Polacek <polacek@redhat.com>
PR c/67854

View File

@ -1,3 +1,8 @@
2016-03-02 Richard Biener <rguenther@suse.de>
PR middle-end/67278
* gcc.dg/simd-7.c: New testcase.
2016-03-02 Eric Botcazou <ebotcazou@adacore.com>
* gcc.target/i386/pr70007.c: Tweak.

View File

@ -0,0 +1,19 @@
/* { dg-do compile } */
#if __SIZEOF_LONG_DOUBLE__ == 16 || __SIZEOF_LONG_DOUBLE__ == 8
typedef long double a __attribute__((vector_size (16)));
a __attribute__((noinline))
sum (a first, a second)
{
return first + second;
}
a
foo (a x, a y, a z)
{
return sum (x, y) + z;
}
#else
int main() {}
#endif

View File

@ -2959,10 +2959,10 @@ verify_expr (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
}
else if (!INTEGRAL_TYPE_P (TREE_TYPE (t))
&& TYPE_MODE (TREE_TYPE (t)) != BLKmode
&& (GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (t)))
&& (GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (t)))
!= tree_to_uhwi (t1)))
{
error ("mode precision of non-integral result does not "
error ("mode size of non-integral result does not "
"match field size of BIT_FIELD_REF");
return t;
}