URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
// PR c++/2039
|
// PR c++/2039
|
// Test that a scoped reference to a member of an anonymous union member of
|
// Test that a scoped reference to a member of an anonymous union member of
|
// a base class works properly.
|
// a base class works properly.
|
|
|
// { dg-do run }
|
// { dg-do run }
|
|
|
struct A
|
struct A
|
{
|
{
|
long ia1;
|
long ia1;
|
union
|
union
|
{
|
{
|
long ia2;
|
long ia2;
|
};
|
};
|
};
|
};
|
|
|
struct B : public A
|
struct B : public A
|
{
|
{
|
void f1();
|
void f1();
|
void f2();
|
void f2();
|
};
|
};
|
|
|
void B::f1()
|
void B::f1()
|
{
|
{
|
ia1 = 11;
|
ia1 = 11;
|
ia2 = 22;
|
ia2 = 22;
|
}
|
}
|
|
|
void B::f2()
|
void B::f2()
|
{
|
{
|
ia1 = 33;
|
ia1 = 33;
|
A::ia2 = 44; // <<< !!!????
|
A::ia2 = 44; // <<< !!!????
|
}
|
}
|
|
|
int main()
|
int main()
|
{
|
{
|
B x;
|
B x;
|
|
|
x.f1();
|
x.f1();
|
if (x.ia1 != 11 || x.ia2 != 22)
|
if (x.ia1 != 11 || x.ia2 != 22)
|
return 1;
|
return 1;
|
|
|
x.f2();
|
x.f2();
|
if (x.ia1 != 33 || x.ia2 != 44)
|
if (x.ia1 != 33 || x.ia2 != 44)
|
return 1;
|
return 1;
|
|
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.