re PR tree-optimization/27285 (ivopts postgresql miscompilation)
PR tree-optimization/27285 * gcc.c-torture/execute/pr27285.c: New test. From-SVN: r113516
This commit is contained in:
parent
f6a5ffbfbf
commit
0d4b9fa4c8
2 changed files with 49 additions and 0 deletions
|
@ -1,5 +1,8 @@
|
|||
2006-05-04 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/27285
|
||||
* gcc.c-torture/execute/pr27285.c: New test.
|
||||
|
||||
PR middle-end/27388
|
||||
* gcc.dg/gomp/pr27388-1.c: New test.
|
||||
* gcc.dg/gomp/pr27388-2.c: New test.
|
||||
|
|
46
gcc/testsuite/gcc.c-torture/execute/pr27285.c
Normal file
46
gcc/testsuite/gcc.c-torture/execute/pr27285.c
Normal file
|
@ -0,0 +1,46 @@
|
|||
/* PR tree-optimization/27285 */
|
||||
|
||||
extern void abort (void);
|
||||
|
||||
struct S { unsigned char a, b, c, d[16]; };
|
||||
|
||||
void __attribute__ ((noinline))
|
||||
foo (struct S *x, struct S *y)
|
||||
{
|
||||
int a, b;
|
||||
unsigned char c, *d, *e;
|
||||
|
||||
b = x->b;
|
||||
d = x->d;
|
||||
e = y->d;
|
||||
a = 0;
|
||||
while (b)
|
||||
{
|
||||
if (b >= 8)
|
||||
{
|
||||
c = 0xff;
|
||||
b -= 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
c = 0xff << (8 - b);
|
||||
b = 0;
|
||||
}
|
||||
|
||||
e[a] = d[a] & c;
|
||||
a++;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
struct S x = { 0, 25, 0, { 0xaa, 0xbb, 0xcc, 0xdd }};
|
||||
struct S y = { 0, 0, 0, { 0 }};
|
||||
|
||||
foo (&x, &y);
|
||||
if (x.d[0] != y.d[0] || x.d[1] != y.d[1]
|
||||
|| x.d[2] != y.d[2] || (x.d[3] & 0x80) != y.d[3])
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue