On Thu, Sep 25, 2014 at 09:29:52AM +0200, Uros Bizjak wrote:
> Hello!
>
> > I've noticed that lots of g++ struct-layout-1.exp tests now fail
> > on ppc*. The problem is the psABI warning:
> > the layout of aggregates containing vectors with N-byte alignment
> > For various targets we are using -Wno-abi (and, in C
> > struct-layout-1.exp also by default) for this, so the patch just
> > changes the default for C++ testing too.
>
> const char *dg_options[] = {
> -"/* { dg-options \"%s-I%s\" } */\n",
> +"/* { dg-options \"%s-I%s -Wno-abi\" } */\n",
> "/* { dg-options \"%s-I%s -mno-mmx -Wno-abi\" { target i?86-*-*
> x86_64-*-* } } */\n",
> "/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux*
> powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n",
> "/* { dg-options \"%s-I%s -mno-mmx -fno-common -Wno-abi\" { target
> i?86-*-darwin* x86_64-*-darwin* i?86-*-mingw32* x86_64-*-mingw32*
> i?86-*-cygwin* } } */\n",
>
> IMO, these should be converted to dg-additional-options.
That would be something like following, except that compat framework doesn't
support dg-additional-options:
WARNING: compat.exp does not support dg-additional-options
--- gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c.jj 2012-03-14
09:39:37.000000000 +0100
+++ gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c 2014-09-25
09:37:07.430959359 +0200
@@ -43,16 +43,12 @@ along with GCC; see the file COPYING3.
#define COMPAT_PRLL "ll"
#endif
-const char *dg_options[] = {
-"/* { dg-options \"%s-I%s\" } */\n",
-"/* { dg-options \"%s-I%s -Wno-abi\" } */\n",
-"/* { dg-options \"%s-I%s -mno-mmx -Wno-abi\" { target i?86-*-* x86_64-*-* } }
*/\n",
-"/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux*
powerpc*-*-darwin* } } */\n",
-"/* { dg-options \"%s-I%s -mno-mmx -fno-common -Wno-abi\" { target
i?86-*-darwin* x86_64-*-darwin* } } */\n",
-"/* { dg-options \"%s-I%s -mno-base-addresses\" { target mmix-*-* } } */\n",
-"/* { dg-options \"%s-I%s -mlongcalls -mtext-section-literals\" { target
xtensa*-*-* } } */\n"
-#define NDG_OPTIONS (sizeof (dg_options) / sizeof (dg_options[0]))
-};
+const char dg_options[] =
+"/* { dg-options \"%s-I%s -Wno-abi\" } */\n"
+"/* { dg-additional-options \"-mno-mmx\" { target i?86-*-* x86_64-*-* } } */\n"
+"/* { dg-additional-options \"-fno-common\" { target hppa*-*-hpux*
powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n"
+"/* { dg-additional-options \"-mno-base-addresses\" { target mmix-*-* } } */\n"
+"/* { dg-additional-options \"-mlongcalls -mtext-section-literals\" { target
xtensa*-*-* } } */\n";
typedef unsigned int hashval_t;
@@ -759,7 +755,6 @@ switchfiles (int fields)
{
static int filecnt;
static char *destbuf, *destptr;
- int i;
++filecnt;
if (outfile)
@@ -789,8 +784,7 @@ switchfiles (int fields)
exit (1);
}
fprintf (outfile, "/* { dg-require-effective-target int32plus } */\n");
- for (i = 0; i < NDG_OPTIONS; i++)
- fprintf (outfile, dg_options[i], "", srcdir_safe);
+ fprintf (outfile, dg_options, "", srcdir_safe);
fprintf (outfile, "/* { dg-prune-output \".*-Wno-abi.*\" } */\n");
fprintf (outfile, "/* { dg-prune-output \".*Offset of packed bit-field.*\" }
*/\n");
fprintf (outfile, "\
@@ -817,8 +811,7 @@ int main (void)\n\
outfile = fopen (destbuf, "w");
if (outfile == NULL)
goto fail;
- for (i = 0; i < NDG_OPTIONS; i++)
- fprintf (outfile, dg_options[i], "-w ", srcdir_safe);
+ fprintf (outfile, dg_options, "-w ", srcdir_safe);
fprintf (outfile, "\
#include \"struct-layout-1_x1.h\"\n\
#include \"t%03d_test.h\"\n\
@@ -829,8 +822,7 @@ int main (void)\n\
outfile = fopen (destbuf, "w");
if (outfile == NULL)
goto fail;
- for (i = 0; i < NDG_OPTIONS; i++)
- fprintf (outfile, dg_options[i], "-w ", srcdir_safe);
+ fprintf (outfile, dg_options, "-w ", srcdir_safe);
fprintf (outfile, "\
#include \"struct-layout-1_y1.h\"\n\
#include \"t%03d_test.h\"\n\
--- gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c.jj 2014-09-24
11:07:50.000000000 +0200
+++ gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c 2014-09-25
09:36:00.371312897 +0200
@@ -43,15 +43,12 @@ along with GCC; see the file COPYING3.
#define COMPAT_PRLL "ll"
#endif
-const char *dg_options[] = {
-"/* { dg-options \"%s-I%s\" } */\n",
-"/* { dg-options \"%s-I%s -mno-mmx -Wno-abi\" { target i?86-*-* x86_64-*-* } }
*/\n",
-"/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux*
powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n",
-"/* { dg-options \"%s-I%s -mno-mmx -fno-common -Wno-abi\" { target
i?86-*-darwin* x86_64-*-darwin* i?86-*-mingw32* x86_64-*-mingw32*
i?86-*-cygwin* } } */\n",
-"/* { dg-options \"%s-I%s -mno-base-addresses\" { target mmix-*-* } } */\n",
-"/* { dg-options \"%s-I%s -mlongcalls -mtext-section-literals\" { target
xtensa*-*-* } } */\n"
-#define NDG_OPTIONS (sizeof (dg_options) / sizeof (dg_options[0]))
-};
+const char dg_options[] =
+"/* { dg-options \"%s-I%s -Wno-abi\" } */\n"
+"/* { dg-additional-options \"-mno-mmx\" { target i?86-*-* x86_64-*-* } } */\n"
+"/* { dg-additional-options \"-fno-common\" { target hppa*-*-hpux*
powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n"
+"/* { dg-additional-options \"-mno-base-addresses\" { target mmix-*-* } } */\n"
+"/* { dg-additional-options \"-mlongcalls -mtext-section-literals\" { target
xtensa*-*-* } } */\n";
typedef unsigned int hashval_t;
@@ -506,7 +503,6 @@ switchfiles (int fields)
{
static int filecnt;
static char *destbuf, *destptr;
- int i;
++filecnt;
if (outfile)
@@ -535,8 +531,7 @@ switchfiles (int fields)
fputs ("failed to create test files\n", stderr);
exit (1);
}
- for (i = 0; i < NDG_OPTIONS; i++)
- fprintf (outfile, dg_options[i], "", srcdir_safe);
+ fprintf (outfile, dg_options, "", srcdir_safe);
fprintf (outfile, "\n\
#include \"struct-layout-1.h\"\n\
\n\
@@ -561,8 +556,7 @@ int main (void)\n\
outfile = fopen (destbuf, "w");
if (outfile == NULL)
goto fail;
- for (i = 0; i < NDG_OPTIONS; i++)
- fprintf (outfile, dg_options[i], "-w ", srcdir_safe);
+ fprintf (outfile, dg_options, "-w ", srcdir_safe);
fprintf (outfile, "\n\
#include \"struct-layout-1_x1.h\"\n\
#include \"t%03d_test.h\"\n\
@@ -573,8 +567,7 @@ int main (void)\n\
outfile = fopen (destbuf, "w");
if (outfile == NULL)
goto fail;
- for (i = 0; i < NDG_OPTIONS; i++)
- fprintf (outfile, dg_options[i], "-w ", srcdir_safe);
+ fprintf (outfile, dg_options, "-w ", srcdir_safe);
fprintf (outfile, "\n\
#include \"struct-layout-1_y1.h\"\n\
#include \"t%03d_test.h\"\n\
Jakub