From: Joern Rennecke Date: Fri, 26 Jul 2013 15:22:43 +0000 (+0000) Subject: Skip tests that make assumptions about struct layout that don't hold on epiphany. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d2af6fcb57d9bcac25af3c53fbf0e331c4375426;p=gcc.git 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 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ba033d65a08..fab69c88a6d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,38 @@ +2013-07-26 Joern Rennecke + + 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 * 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 9162d09f3fd..9cf97e688b0 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/iop.C b/gcc/testsuite/g++.dg/cpp0x/iop.C index 834cd314abe..2eb3a3ce337 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/named_refs.C b/gcc/testsuite/g++.dg/cpp0x/named_refs.C index 697867e11d9..0ccd42f4a0f 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv1p.C b/gcc/testsuite/g++.dg/cpp0x/rv1p.C index abe5de0b35e..99e39e6a4bc 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv2p.C b/gcc/testsuite/g++.dg/cpp0x/rv2p.C index 722d1b8d8b1..fca45c7352a 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv3p.C b/gcc/testsuite/g++.dg/cpp0x/rv3p.C index fad89e1d938..804b2ffbdbe 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv4p.C b/gcc/testsuite/g++.dg/cpp0x/rv4p.C index 134ca13e0f9..b2744e3cd9e 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv5p.C b/gcc/testsuite/g++.dg/cpp0x/rv5p.C index b8ab545889a..9bb5e2bbb89 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv6p.C b/gcc/testsuite/g++.dg/cpp0x/rv6p.C index 4b78ef70bd0..b2a3bdedd1b 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv7p.C b/gcc/testsuite/g++.dg/cpp0x/rv7p.C index 94aa07b93a8..918dc14b98c 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/cpp0x/rv8p.C b/gcc/testsuite/g++.dg/cpp0x/rv8p.C index fb9ec4ce792..f6784dffc22 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 struct sa; template <> struct sa {}; diff --git a/gcc/testsuite/g++.dg/ext/strncpy-chk1.C b/gcc/testsuite/g++.dg/ext/strncpy-chk1.C index 7770ba93127..ebafc99887b 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 00000000000..e976a755ba0 --- /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 00000000000..acf2132367b --- /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 00000000000..e976a755ba0 --- /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 00000000000..9b8363459c2 --- /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 00000000000..9b8363459c2 --- /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 00000000000..9b8363459c2 --- /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 00000000000..e976a755ba0 --- /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 00000000000..9b8363459c2 --- /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 00000000000..e976a755ba0 --- /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 00000000000..9b8363459c2 --- /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 00000000000..e976a755ba0 --- /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 00000000000..0d6e85c9711 --- /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 00000000000..0d6e85c9711 --- /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 00000000000..cee203d27bb --- /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 96c523e3609..956d4a860e3 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 a98bc356c47..309a68416ae 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 5cec6b361e4..bb727da28e4 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 71182c52f2e..94133ddd952 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);