// PR c++/2039 // Test that a scoped reference to a member of an anonymous union member of // a base class works properly. // { dg-do run } struct A { long ia1; union { long ia2; }; }; struct B : public A { void f1(); void f2(); }; void B::f1() { ia1 = 11; ia2 = 22; } void B::f2() { ia1 = 33; A::ia2 = 44; // <<< !!!???? } int main() { B x; x.f1(); if (x.ia1 != 11 || x.ia2 != 22) return 1; x.f2(); if (x.ia1 != 33 || x.ia2 != 44) return 1; return 0; }