aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.8/0042-pr57748.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.8/0042-pr57748.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.8/0042-pr57748.patch78
1 files changed, 0 insertions, 78 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.8/0042-pr57748.patch b/meta/recipes-devtools/gcc/gcc-4.8/0042-pr57748.patch
deleted file mode 100644
index 5356f722d9..0000000000
--- a/meta/recipes-devtools/gcc/gcc-4.8/0042-pr57748.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Khem Raj
-
-2013-08-01 Martin Jambor <mjambor@suse.cz>
-
- PR middle-end/57748
- * stor-layout.c (compute_record_mode): Treat zero-sized array fields
- like incomplete types.
-
-testsuite/
- * gcc.dg/torture/pr57748.c: New test.
-
-
-Index: gcc-4.8.1/gcc/stor-layout.c
-===================================================================
---- gcc-4.8.1.orig/gcc/stor-layout.c 2013-04-28 10:29:18.000000000 -0700
-+++ gcc-4.8.1/gcc/stor-layout.c 2013-08-01 15:02:08.018006125 -0700
-@@ -1618,7 +1618,9 @@
- && integer_zerop (TYPE_SIZE (TREE_TYPE (field)))))
- || ! host_integerp (bit_position (field), 1)
- || DECL_SIZE (field) == 0
-- || ! host_integerp (DECL_SIZE (field), 1))
-+ || ! host_integerp (DECL_SIZE (field), 1)
-+ || (TREE_CODE (TREE_TYPE (field)) == ARRAY_TYPE
-+ && tree_low_cst (DECL_SIZE (field), 1) == 0))
- return;
-
- /* If this field is the whole struct, remember its mode so
-Index: gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57748.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr57748.c 2013-08-01 15:02:08.062006126 -0700
-@@ -0,0 +1,45 @@
-+/* PR middle-end/57748 */
-+/* { dg-do run } */
-+
-+#include <stdlib.h>
-+
-+extern void abort (void);
-+
-+typedef long long V
-+ __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
-+
-+typedef struct S { V a; V b[0]; } P __attribute__((aligned (1)));
-+
-+struct __attribute__((packed)) T { char c; P s; };
-+
-+void __attribute__((noinline, noclone))
-+check (struct T *t)
-+{
-+ if (t->s.b[0][0] != 3 || t->s.b[0][1] != 4)
-+ abort ();
-+}
-+
-+int __attribute__((noinline, noclone))
-+get_i (void)
-+{
-+ return 0;
-+}
-+
-+void __attribute__((noinline, noclone))
-+foo (P *p)
-+{
-+ V a = { 3, 4 };
-+ int i = get_i();
-+ p->b[i] = a;
-+}
-+
-+int
-+main ()
-+{
-+ struct T *t = (struct T *) malloc (128);
-+
-+ foo (&t->s);
-+ check (t);
-+
-+ return 0;
-+}