re PR tree-optimization/32575 (With -ftree-vrp miscompiles a single line of code in SQLite)
PR tree-optimization/32575 * gcc.c-torture/execute/20071108-1.c: New test. From-SVN: r129998
This commit is contained in:
parent
8208d7dc30
commit
c4e2c79ee4
@ -1,3 +1,8 @@
|
||||
2007-11-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/32575
|
||||
* gcc.c-torture/execute/20071108-1.c: New test.
|
||||
|
||||
2007-11-08 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* g++.dg/opt/anchor1.C: New.
|
||||
|
53
gcc/testsuite/gcc.c-torture/execute/20071108-1.c
Normal file
53
gcc/testsuite/gcc.c-torture/execute/20071108-1.c
Normal file
@ -0,0 +1,53 @@
|
||||
/* PR tree-optimization/32575 */
|
||||
|
||||
extern void abort (void);
|
||||
|
||||
struct S
|
||||
{
|
||||
void *s1, *s2;
|
||||
unsigned char s3, s4, s5;
|
||||
};
|
||||
|
||||
__attribute__ ((noinline))
|
||||
void *
|
||||
foo (void)
|
||||
{
|
||||
static struct S s;
|
||||
return &s;
|
||||
}
|
||||
|
||||
__attribute__ ((noinline))
|
||||
void *
|
||||
bar ()
|
||||
{
|
||||
return (void *) 0;
|
||||
}
|
||||
|
||||
__attribute__ ((noinline))
|
||||
struct S *
|
||||
test (void *a, void *b)
|
||||
{
|
||||
struct S *p, q;
|
||||
p = foo ();
|
||||
if (p == 0)
|
||||
{
|
||||
p = &q;
|
||||
__builtin_memset (p, 0, sizeof (*p));
|
||||
}
|
||||
p->s1 = a;
|
||||
p->s2 = b;
|
||||
if (p == &q)
|
||||
p = 0;
|
||||
return p;
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int a;
|
||||
int b;
|
||||
struct S *z = test ((void *) &a, (void *) &b);
|
||||
if (z == 0 || z->s1 != (void *) &a || z->s2 != (void *) &b || z->s3 || z->s4)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user