ptr-to-datamember.cpp revision 39762951ad2abfed7b743c01c672fac85034b856
1// RUN: clang-cc -emit-llvm -o - %s 2 3extern "C" int printf(...); 4 5struct V { 6 double d; 7 int iV; 8}; 9 10struct B : virtual V{ 11 double d; 12 int iB; 13}; 14 15struct B1 : virtual V{ 16 double d; 17 int iB1; 18}; 19 20class A : public B, public B1 { 21public: 22 float f; 23 double d; 24 int Ai; 25}; 26 27int main() 28{ 29 A a1; 30 int A::* pa = &A::Ai; 31 float A::* pf = &A::f; 32 double A::* pd = &A::d; 33 printf("%d %d %d\n", &A::Ai, &A::f, &A::d); 34 printf("%d\n", &A::B::iB); 35 printf("%d\n", &A::B1::iB1); 36 printf("%d\n", &A::f); 37 printf("%d\n", &A::B::iV); 38 printf("%d\n", &A::B1::iV); 39 printf("%d\n", &A::B::V::iV); 40 printf("%d\n", &A::B1::V::iV); 41 // FIXME. NYI 42 // printf(" %d, %f, %f \n", a1.*pa, a1.f, a1.d); 43} 44