From 218db463e006d19f78701979d1307283ddf8a426 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 2 Mar 2016 08:16:16 +0000 Subject: [PATCH] re PR target/67278 (ICE: verify_gimple failed on darwin 14.5 x86_64) 2016-03-02 Richard Biener PR middle-end/67278 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case. * gcc.dg/simd-7.c: New testcase. From-SVN: r233897 --- gcc/ChangeLog | 5 +++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/simd-7.c | 19 +++++++++++++++++++ gcc/tree-cfg.c | 4 ++-- 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/simd-7.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 63a76742472..c07b3f03320 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-03-02 Richard Biener + + PR middle-end/67278 + * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case. + 2016-03-02 Marek Polacek PR c/67854 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d84f3760a62..014d249f4d0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-03-02 Richard Biener + + PR middle-end/67278 + * gcc.dg/simd-7.c: New testcase. + 2016-03-02 Eric Botcazou * gcc.target/i386/pr70007.c: Tweak. diff --git a/gcc/testsuite/gcc.dg/simd-7.c b/gcc/testsuite/gcc.dg/simd-7.c new file mode 100644 index 00000000000..0b888fc6486 --- /dev/null +++ b/gcc/testsuite/gcc.dg/simd-7.c @@ -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 diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index b54545d1bba..04e46fd068c 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -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; } -- 2.30.2