blob: fef9c03d7ac123537872d56121d85bca7ee0d157 [file] [log] [blame]
Daniel Dunbar4fcfde42009-11-08 01:45:36 +00001// RUN: clang-cc -triple x86_64-apple-darwin -std=c++0x -O0 -S %s -o %t-64.s
2// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s
3// RUN: clang-cc -triple i386-apple-darwin -std=c++0x -O0 -S %s -o %t-32.s
4// RUN: FileCheck -check-prefix LP32 -input-file=%t-32.s %s
Fariborz Jahanian0880bac2009-08-17 19:04:50 +00005
6extern "C" int printf(...);
7
Fariborz Jahanian6b487202009-08-20 23:33:31 +00008int count = 1;
9
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000010struct S {
Fariborz Jahanian6b487202009-08-20 23:33:31 +000011 S() : iS(count++), fS(1.23) {};
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000012 ~S(){printf("S::~S(%d, %f)\n", iS, fS); };
13 int iS;
14 float fS;
15};
16
17struct Q {
Fariborz Jahanian6b487202009-08-20 23:33:31 +000018 Q() : iQ(count++), dQ(2.34) {};
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000019 ~Q(){printf("Q::~Q(%d, %f)\n", iQ, dQ); };
20 int iQ;
21 double dQ;
22};
23
24struct P {
Fariborz Jahanian6b487202009-08-20 23:33:31 +000025 P() : fP(3.45) , iP(count++) {};
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000026 ~P(){printf("P::~P(%d, %f)\n", iP, fP); };
27 float fP;
28 int iP;
29};
30
31struct M : Q, P {
32 S s;
33
34 Q q;
35
36 P p;
37
Fariborz Jahanian6b487202009-08-20 23:33:31 +000038 P p_arr[3];
39
40 Q q_arr[2][3];
41
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000042};
43
44M gm;
45
46int main() {M m1;}
47
Mike Stump1eb44332009-09-09 15:08:12 +000048// CHECK-LP64: call __ZN1MC1Ev
49// CHECK-LP64: call __ZN1MD1Ev
50// CHECK-LP64: .globl __ZN1MD1Ev
51// CHECK-LP64-NEXT: .weak_definition __ZN1MD1Ev
52// CHECK-LP64-NEXT: __ZN1MD1Ev:
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000053
54
Mike Stump1eb44332009-09-09 15:08:12 +000055// CHECK-LP32: call L__ZN1MC1Ev
56// CHECK-LP32: call L__ZN1MD1Ev
57// CHECK-LP32: .globl __ZN1MD1Ev
58// CHECK-LP32-NEXT: .weak_definition __ZN1MD1Ev
59// CHECK-LP32-NEXT:__ZN1MD1Ev: