Hi, I've noticed that test testsuite/gcc.c-torture/compile/sra-1.c that I added yeas ago is run multiple times at -O1 because that level is specified in the test. I looked for others such tests in that directory and found a few more, all added by Honza :-) So this patch:
- removes the -O level specification for tests for: + sra-1.c - that was the intent + pr48929.c - PR was an ICE + pr39834.c - PR was an ICE, even though -Winline is involved + pr55569.c - PR was an ICE - it moves test gcc.c-torture/compile/pr45085.c to gcc.dg/tree-ssa/ because I thought that was more appropriate for a spurious warning problem. - and leaves unresolved pr48641.c because it has much bigger problems. Not only it is tun at -O1 only but it relies on an undefined symbol link_error for checking. However since the testcase is only compiled and not linked, it does not work. What is worse, the symbol is present in the assembly output (at -O and even -O2) and so basically this test is currently silently failing. Honza, perhaps you want to have a look? I've checked that the modified tests pass by running them using the RUNTESTFLAGS variable on an x86_64-linux. OK for trunk? Thanks, Martin 2013-12-09 Martin Jambor <mjam...@suse.cz> * gcc.c-torture/compile/pr39834.c: Remove optimization level option. * gcc.c-torture/compile/pr48929.c: Likewise. * gcc.c-torture/compile/pr55569.c: Likewise. * gcc.c-torture/compile/pr45085.c: Moved to... * gcc.dg/tree-ssa/pr45085.c: ...here, added compile dg-do. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr39834.c b/gcc/testsuite/gcc.c-torture/compile/pr39834.c index ecc3977..c0ad8fd 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr39834.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr39834.c @@ -1,4 +1,4 @@ -/* { dg-options "-O1 -Winline" } */ +/* { dg-options "-Winline" } */ void quit_mined (); void bottom_line (); typedef enum { False, True } FLAG; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr45085.c b/gcc/testsuite/gcc.c-torture/compile/pr45085.c deleted file mode 100644 index 5c1ec6a..0000000 --- a/gcc/testsuite/gcc.c-torture/compile/pr45085.c +++ /dev/null @@ -1,45 +0,0 @@ -/* { dg-options "-O2 -Wuninitialized" } */ -struct S { char *s1; long s2; }; -struct T { int t1; long t2; long t3; }; -extern int fn2 (void); -extern int fn3 (struct T); -extern struct T fn4 (); -extern int fn5 (char **, long *, int); -extern void fn6 (void); -extern void fn7 (void *); -struct S *fn10 (); -static int p; -static void *q; -extern struct T r; - -static struct T -fn8 (struct T x, int y) -{ - struct S *u = fn10 (); - int v = fn5 (&u->s1, &u->s2, 0); - while (1) - { - if (p) -fn6 (); - if (fn3 (x)) -return fn4 (); - if (y & 1) -return r; - v = fn5 (&u->s1, &u->s2, 1); - } -} - -struct T -fn9 (struct T x, int y) -{ - struct T t = fn8 (x, y); - if (fn2 ()) - fn7 (q); - return t; -} - -void * -fn1 (void) -{ - return fn9; -} diff --git a/gcc/testsuite/gcc.c-torture/compile/pr48929.c b/gcc/testsuite/gcc.c-torture/compile/pr48929.c index f085dc6..b28ad9d 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr48929.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr48929.c @@ -1,4 +1,4 @@ -/*{ dg-options "-O -findirect-inlining" }*/ +/*{ dg-options "-findirect-inlining" }*/ void bar (); static void diff --git a/gcc/testsuite/gcc.c-torture/compile/pr55569.c b/gcc/testsuite/gcc.c-torture/compile/pr55569.c index 2a53c80..cffbcfc 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr55569.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr55569.c @@ -1,4 +1,4 @@ -/* { dg-options "-O1 -ftree-vectorize" } */ +/* { dg-options "-ftree-vectorize" } */ int *bar (void); void diff --git a/gcc/testsuite/gcc.c-torture/compile/sra-1.c b/gcc/testsuite/gcc.c-torture/compile/sra-1.c index 06dcf10..61cb318 100644 --- a/gcc/testsuite/gcc.c-torture/compile/sra-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/sra-1.c @@ -1,5 +1,4 @@ /* { dg-do compile } */ -/* { dg-options "-O1" } */ /* Let gimple verifier check what SRA does to unions and single-field strucutres . */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr45085.c b/gcc/testsuite/gcc.dg/tree-ssa/pr45085.c new file mode 100644 index 0000000..d95ac86 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr45085.c @@ -0,0 +1,46 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -Wuninitialized" } */ +struct S { char *s1; long s2; }; +struct T { int t1; long t2; long t3; }; +extern int fn2 (void); +extern int fn3 (struct T); +extern struct T fn4 (); +extern int fn5 (char **, long *, int); +extern void fn6 (void); +extern void fn7 (void *); +struct S *fn10 (); +static int p; +static void *q; +extern struct T r; + +static struct T +fn8 (struct T x, int y) +{ + struct S *u = fn10 (); + int v = fn5 (&u->s1, &u->s2, 0); + while (1) + { + if (p) +fn6 (); + if (fn3 (x)) +return fn4 (); + if (y & 1) +return r; + v = fn5 (&u->s1, &u->s2, 1); + } +} + +struct T +fn9 (struct T x, int y) +{ + struct T t = fn8 (x, y); + if (fn2 ()) + fn7 (q); + return t; +} + +void * +fn1 (void) +{ + return fn9; +}