]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/67278 (ICE: verify_gimple failed on darwin 14.5 x86_64)
authorRichard Biener <rguenther@suse.de>
Wed, 2 Mar 2016 08:16:16 +0000 (08:16 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 2 Mar 2016 08:16:16 +0000 (08:16 +0000)
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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/simd-7.c [new file with mode: 0644]
gcc/tree-cfg.c

index 63a76742472db3d7e278b81770a5731a3ad2cf13..c07b3f033205347713843aaea653ce8a90eb20ea 100644 (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
index d84f3760a62d3fb023edb66d4ecd0efa84376eb3..014d249f4d0e4e69cb0d1754ecb11818c07b7678 100644 (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.
diff --git a/gcc/testsuite/gcc.dg/simd-7.c b/gcc/testsuite/gcc.dg/simd-7.c
new file mode 100644 (file)
index 0000000..0b888fc
--- /dev/null
@@ -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
index b54545d1bba907ff4a91a3aebf0e804a3497c384..04e46fd068c39557316dad8e9bc8d4a4250083df 100644 (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;
            }