URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 338 |
// PR c++/5748
|
// PR c++/5748
|
// This testcase ICEd because used flag from the anon union variables
|
// This testcase ICEd because used flag from the anon union variables
|
// was not propagated back to the anon union itself, causing addressof
|
// was not propagated back to the anon union itself, causing addressof
|
// not to be replaced with stack slot.
|
// not to be replaced with stack slot.
|
// { dg-do compile }
|
// { dg-do compile }
|
// { dg-options "-O2" }
|
// { dg-options "-O2" }
|
|
|
struct A {
|
struct A {
|
A ();
|
A ();
|
~A ();
|
~A ();
|
int foo ();
|
int foo ();
|
int bar (void *x, int y);
|
int bar (void *x, int y);
|
};
|
};
|
|
|
int A::foo()
|
int A::foo()
|
{
|
{
|
union {
|
union {
|
int a;
|
int a;
|
int b;
|
int b;
|
};
|
};
|
|
|
if (bar (&a, sizeof (int)) != 32)
|
if (bar (&a, sizeof (int)) != 32)
|
return 16;
|
return 16;
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.