// { dg-do run  }
// prms-id: 3570

extern "C" int printf(const char *, ...);

struct A {
   void print() {printf("A");}
};

struct B :  A {
   typedef A superB;
   void print() {superB::print(); printf("B");}
};

struct C :  B {
   typedef B superC;
   void print() {superC::print(); printf("C");}
};

int main ()
{
   A a;
   B b;
   C c;

   a.print(); printf("\n");
   b.print(); printf("\n");
   c.print(); printf("\n");
   return 0;
}
