re PR tree-optimization/32772 (error: found real variable when subvariables should have appeared)
PR tree-optimization/32772 * gcc.c-torture/compile/20070905-1.c: New test. PR tree-optimization/32975 * gcc.dg/pr32975.c: New test. From-SVN: r128688
This commit is contained in:
parent
d2af6a68d8
commit
97aaae90c4
@ -7,6 +7,12 @@
|
|||||||
attributes.
|
attributes.
|
||||||
* g++.dg/ext/va-arg-pack-len-2.C: New test.
|
* g++.dg/ext/va-arg-pack-len-2.C: New test.
|
||||||
|
|
||||||
|
PR tree-optimization/32772
|
||||||
|
* gcc.c-torture/compile/20070905-1.c: New test.
|
||||||
|
|
||||||
|
PR tree-optimization/32975
|
||||||
|
* gcc.dg/pr32975.c: New test.
|
||||||
|
|
||||||
PR middle-end/28755
|
PR middle-end/28755
|
||||||
* gcc.dg/pr28755.c: New test.
|
* gcc.dg/pr28755.c: New test.
|
||||||
|
|
||||||
|
34
gcc/testsuite/gcc.c-torture/compile/20070905-1.c
Normal file
34
gcc/testsuite/gcc.c-torture/compile/20070905-1.c
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/* PR tree-optimization/32772 */
|
||||||
|
|
||||||
|
struct S
|
||||||
|
{
|
||||||
|
unsigned long bits[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
void f1 (int, unsigned long *);
|
||||||
|
int f2 (void);
|
||||||
|
int f3 (int, unsigned long *);
|
||||||
|
int f4 (int, unsigned long *);
|
||||||
|
|
||||||
|
static inline __attribute__ ((always_inline))
|
||||||
|
void baz (int x, volatile struct S *y)
|
||||||
|
{
|
||||||
|
f1 (x, y->bits);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
bar (int x, struct S *y)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
if (__builtin_constant_p (x) ? f3 (x, y->bits) : f4 (x, y->bits))
|
||||||
|
baz (x, y);
|
||||||
|
for (n = f2 (); n < 8; n = f2 ())
|
||||||
|
f3 (n, y->bits);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
foo (int x, int y)
|
||||||
|
{
|
||||||
|
struct S m;
|
||||||
|
while ((y = bar (x, &m)) >= 0);
|
||||||
|
}
|
23
gcc/testsuite/gcc.dg/pr32975.c
Normal file
23
gcc/testsuite/gcc.dg/pr32975.c
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* PR tree-optimization/32975 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-O1 -finline-functions -fipa-cp" } */
|
||||||
|
|
||||||
|
static int
|
||||||
|
f0 (char *s0, char *s1)
|
||||||
|
{
|
||||||
|
return __builtin_strlen (s0) > __builtin_strlen (s1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
f1 (char *s, int j)
|
||||||
|
{
|
||||||
|
if (f0 (s, ""))
|
||||||
|
return 1;
|
||||||
|
return j;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
f2 (char *s)
|
||||||
|
{
|
||||||
|
f1 (s, 0);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user