aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2013-07-26 15:22:43 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2013-07-26 16:22:43 +0100
commitd2af6fcb57d9bcac25af3c53fbf0e331c4375426 (patch)
tree225d5ee26c2c150f4004e94689fa885522a06861
parentddb4e7f057acb52481e8fd346ba87b2589a94150 (diff)
downloadgcc-d2af6fcb57d9bcac25af3c53fbf0e331c4375426.zip
gcc-d2af6fcb57d9bcac25af3c53fbf0e331c4375426.tar.gz
gcc-d2af6fcb57d9bcac25af3c53fbf0e331c4375426.tar.bz2
Skip tests that make assumptions about struct layout that don't hold on epiphany.
Skip tests that make assumptions about struct layout that don't hold on epiphany. These tests could be fixed by adding padded attributes, See: http://gcc.gnu.org/ml/gcc-patches/2011-08/msg00006.html http://gcc.gnu.org/ml/gcc-patches/2011-09/msg01513.html http://gcc.gnu.org/ml/gcc-patches/2011-09/msg01504.html * g++.dg/cpp0x/cast.C: Skip for epiphany-*-*. * g++.dg/cpp0x/iop.C: Likewise. * g++.dg/cpp0x/named_refs.C: Likewise. * g++.dg/cpp0x/rv1p.C: Likewise. * g++.dg/cpp0x/rv2p.C: Likewise. * g++.dg/cpp0x/rv3p.C: Likewise. * g++.dg/cpp0x/rv4p.C: Likewise. * g++.dg/cpp0x/rv5p.C: Likewise. * g++.dg/cpp0x/rv6p.C: Likewise. * g++.dg/cpp0x/rv7p.C: Likewise. * g++.dg/cpp0x/rv8p.C: Likewise. * g++.dg/ext/strncpy-chk1.C: Likewise. * gcc.dg/builtin-object-size-10.c: Likewise. * gcc.dg/builtin-object-size-11.c: Likewise. * gcc.dg/builtin-stringop-chk-1.c: Likewise. * gcc.dg/pr25805.c: Likewise. * gcc.c-torture/execute/builtins/memcpy-chk.x: New file. * gcc.c-torture/execute/builtins/memmove-chk.x: Likewise. * gcc.c-torture/execute/builtins/mempcpy-chk.x: Likewise. * gcc.c-torture/execute/builtins/memset-chk.x: Likewise. * gcc.c-torture/execute/builtins/snprintf-chk.x: Likewise. * gcc.c-torture/execute/builtins/sprintf-chk.x: Likewise. * gcc.c-torture/execute/builtins/stpcpy-chk.x: Likewise. * gcc.c-torture/execute/builtins/strcat-chk.x: Likewise. * gcc.c-torture/execute/builtins/strcpy-chk.x: Likewise. * gcc.c-torture/execute/builtins/strncat-chk.x: Likewise. * gcc.c-torture/execute/builtins/strncpy-chk.x: Likewise. * gcc.c-torture/execute/builtins/vsnprintf-chk.x: Likewise. * gcc.c-torture/execute/builtins/vsprintf-chk.x: Likewise. * gcc.c-torture/execute/zerolen-2.x: Likewise. From-SVN: r201268
-rw-r--r--gcc/testsuite/ChangeLog35
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/cast.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/iop.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/named_refs.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv1p.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv2p.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv3p.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv4p.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv5p.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv6p.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv7p.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv8p.C1
-rw-r--r--gcc/testsuite/g++.dg/ext/strncpy-chk1.C1
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/zerolen-2.x7
-rw-r--r--gcc/testsuite/gcc.dg/builtin-object-size-10.c1
-rw-r--r--gcc/testsuite/gcc.dg/builtin-object-size-11.c1
-rw-r--r--gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr25805.c1
31 files changed, 149 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ba033d6..fab69c8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,38 @@
+2013-07-26 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ Skip tests that make assumptions about struct layout that don't hold
+ on epiphany:
+ * g++.dg/cpp0x/cast.C: Skip for epiphany-*-*.
+ * g++.dg/cpp0x/iop.C: Likewise.
+ * g++.dg/cpp0x/named_refs.C: Likewise.
+ * g++.dg/cpp0x/rv1p.C: Likewise.
+ * g++.dg/cpp0x/rv2p.C: Likewise.
+ * g++.dg/cpp0x/rv3p.C: Likewise.
+ * g++.dg/cpp0x/rv4p.C: Likewise.
+ * g++.dg/cpp0x/rv5p.C: Likewise.
+ * g++.dg/cpp0x/rv6p.C: Likewise.
+ * g++.dg/cpp0x/rv7p.C: Likewise.
+ * g++.dg/cpp0x/rv8p.C: Likewise.
+ * g++.dg/ext/strncpy-chk1.C: Likewise.
+ * gcc.dg/builtin-object-size-10.c: Likewise.
+ * gcc.dg/builtin-object-size-11.c: Likewise.
+ * gcc.dg/builtin-stringop-chk-1.c: Likewise.
+ * gcc.dg/pr25805.c: Likewise.
+ * gcc.c-torture/execute/builtins/memcpy-chk.x: New file.
+ * gcc.c-torture/execute/builtins/memmove-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/mempcpy-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/memset-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/snprintf-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/sprintf-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/stpcpy-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/strcat-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/strcpy-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/strncat-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/strncpy-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/vsnprintf-chk.x: Likewise.
+ * gcc.c-torture/execute/builtins/vsprintf-chk.x: Likewise.
+ * gcc.c-torture/execute/zerolen-2.x: Likewise.
+
2013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gcc.target/arm/minmax_minus.c: Scan for absence of mov.
diff --git a/gcc/testsuite/g++.dg/cpp0x/cast.C b/gcc/testsuite/g++.dg/cpp0x/cast.C
index 9162d09..9cf97e6 100644
--- a/gcc/testsuite/g++.dg/cpp0x/cast.C
+++ b/gcc/testsuite/g++.dg/cpp0x/cast.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/iop.C b/gcc/testsuite/g++.dg/cpp0x/iop.C
index 834cd31..2eb3a3c 100644
--- a/gcc/testsuite/g++.dg/cpp0x/iop.C
+++ b/gcc/testsuite/g++.dg/cpp0x/iop.C
@@ -8,6 +8,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/named_refs.C b/gcc/testsuite/g++.dg/cpp0x/named_refs.C
index 697867e..0ccd42f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/named_refs.C
+++ b/gcc/testsuite/g++.dg/cpp0x/named_refs.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv1p.C b/gcc/testsuite/g++.dg/cpp0x/rv1p.C
index abe5de0..99e39e6 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv1p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv1p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv2p.C b/gcc/testsuite/g++.dg/cpp0x/rv2p.C
index 722d1b8..fca45c7 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv2p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv2p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv3p.C b/gcc/testsuite/g++.dg/cpp0x/rv3p.C
index fad89e1..804b2ff 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv3p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv3p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv4p.C b/gcc/testsuite/g++.dg/cpp0x/rv4p.C
index 134ca13..b2744e3 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv4p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv4p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv5p.C b/gcc/testsuite/g++.dg/cpp0x/rv5p.C
index b8ab545..9bb5e2b 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv5p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv5p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv6p.C b/gcc/testsuite/g++.dg/cpp0x/rv6p.C
index 4b78ef7..b2a3bde 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv6p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv6p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv7p.C b/gcc/testsuite/g++.dg/cpp0x/rv7p.C
index 94aa07b..918dc14 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv7p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv7p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv8p.C b/gcc/testsuite/g++.dg/cpp0x/rv8p.C
index fb9ec4c..f6784df 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv8p.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv8p.C
@@ -4,6 +4,7 @@
// { dg-do compile }
// { dg-options "-std=c++0x" }
+// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
template <bool> struct sa;
template <> struct sa<true> {};
diff --git a/gcc/testsuite/g++.dg/ext/strncpy-chk1.C b/gcc/testsuite/g++.dg/ext/strncpy-chk1.C
index 7770ba9..ebafc99 100644
--- a/gcc/testsuite/g++.dg/ext/strncpy-chk1.C
+++ b/gcc/testsuite/g++.dg/ext/strncpy-chk1.C
@@ -1,6 +1,7 @@
// PR c++/40502
// { dg-do compile }
// { dg-options "-O2" }
+// { dg-skip-if "packed attribute missing for struct A" { "epiphany-*-*" } { "*" } { "" } }
struct A { char x[12], y[35]; };
struct B { char z[50]; };
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x
new file mode 100644
index 0000000..e976a75
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test4 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x
new file mode 100644
index 0000000..acf2132
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test5 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x
new file mode 100644
index 0000000..e976a75
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test4 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x
new file mode 100644
index 0000000..9b83634
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test3 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x
new file mode 100644
index 0000000..9b83634
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test3 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x
new file mode 100644
index 0000000..9b83634
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test3 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x
new file mode 100644
index 0000000..e976a75
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test4 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x
new file mode 100644
index 0000000..9b83634
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test3 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x
new file mode 100644
index 0000000..e976a75
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test4 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x
new file mode 100644
index 0000000..9b83634
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test3 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x
new file mode 100644
index 0000000..e976a75
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test4 struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x
new file mode 100644
index 0000000..0d6e85c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test3_sub struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x
new file mode 100644
index 0000000..0d6e85c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of struct padding.
+ # to make this true for test3_sub struct A on epiphany would require
+ # __attribute__((packed)) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/zerolen-2.x b/gcc/testsuite/gcc.c-torture/execute/zerolen-2.x
new file mode 100644
index 0000000..cee203d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/zerolen-2.x
@@ -0,0 +1,7 @@
+if [istarget "epiphany-*-*"] {
+ # This test assumes the absence of larger-than-word padding.
+ # to make this true for struct foo on epiphany would require
+ # __attribute__((packed,aligned(__alignof__(word)))) .
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.dg/builtin-object-size-10.c b/gcc/testsuite/gcc.dg/builtin-object-size-10.c
index 96c523e..956d4a8 100644
--- a/gcc/testsuite/gcc.dg/builtin-object-size-10.c
+++ b/gcc/testsuite/gcc.dg/builtin-object-size-10.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-objsz1-details" } */
+// { dg-skip-if "packed attribute missing for drone_source_packet" { "epiphany-*-*" } { "*" } { "" } }
typedef struct {
char sentinel[4];
diff --git a/gcc/testsuite/gcc.dg/builtin-object-size-11.c b/gcc/testsuite/gcc.dg/builtin-object-size-11.c
index a98bc35..309a684 100644
--- a/gcc/testsuite/gcc.dg/builtin-object-size-11.c
+++ b/gcc/testsuite/gcc.dg/builtin-object-size-11.c
@@ -1,6 +1,7 @@
/* PR48985 */
/* { dg-do run } */
/* { dg-options "-std=gnu89" } */
+/* { dg-skip-if "packed attribute missing for struct s" { "epiphany-*-*" } { "*" } { "" } } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
index 5cec6b3..bb727da 100644
--- a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
+++ b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
@@ -3,6 +3,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -std=gnu99 -ftrack-macro-expansion=0" } */
/* { dg-additional-options "-mstructure-size-boundary=8" { target arm*-*-* } } */
+// { dg-skip-if "packed attribute missing for t" { "epiphany-*-*" } { "*" } { "" } }
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/pr25805.c b/gcc/testsuite/gcc.dg/pr25805.c
index 71182c5..94133dd 100644
--- a/gcc/testsuite/gcc.dg/pr25805.c
+++ b/gcc/testsuite/gcc.dg/pr25805.c
@@ -2,6 +2,7 @@
storage for d1.a. */
/* { dg-do run } */
/* { dg-options "" } */
+/* { dg-skip-if "packed attribute missing for d1" { "epiphany-*-*" } { "*" } { "" } } */
extern void abort (void);
extern void exit (int);