blob: 9cc802c85dfab512e7f3ba76b952124040d5a085 [file] [log] [blame]
Fariborz Jahanian0880bac2009-08-17 19:04:50 +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 &&
5// RUN: true
6
7extern "C" int printf(...);
8
Fariborz Jahanian6b487202009-08-20 23:33:31 +00009int count = 1;
10
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000011struct S {
Fariborz Jahanian6b487202009-08-20 23:33:31 +000012 S() : iS(count++), fS(1.23) {};
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000013 ~S(){printf("S::~S(%d, %f)\n", iS, fS); };
14 int iS;
15 float fS;
16};
17
18struct Q {
Fariborz Jahanian6b487202009-08-20 23:33:31 +000019 Q() : iQ(count++), dQ(2.34) {};
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000020 ~Q(){printf("Q::~Q(%d, %f)\n", iQ, dQ); };
21 int iQ;
22 double dQ;
23};
24
25struct P {
Fariborz Jahanian6b487202009-08-20 23:33:31 +000026 P() : fP(3.45) , iP(count++) {};
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000027 ~P(){printf("P::~P(%d, %f)\n", iP, fP); };
28 float fP;
29 int iP;
30};
31
32struct M : Q, P {
33 S s;
34
35 Q q;
36
37 P p;
38
Fariborz Jahanian6b487202009-08-20 23:33:31 +000039 P p_arr[3];
40
41 Q q_arr[2][3];
42
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000043};
44
45M gm;
46
47int main() {M m1;}
48
Mike Stump1eb44332009-09-09 15:08:12 +000049// CHECK-LP64: call __ZN1MC1Ev
50// CHECK-LP64: call __ZN1MD1Ev
51// CHECK-LP64: .globl __ZN1MD1Ev
52// CHECK-LP64-NEXT: .weak_definition __ZN1MD1Ev
53// CHECK-LP64-NEXT: __ZN1MD1Ev:
Fariborz Jahanian0880bac2009-08-17 19:04:50 +000054
55
Mike Stump1eb44332009-09-09 15:08:12 +000056// CHECK-LP32: call L__ZN1MC1Ev
57// CHECK-LP32: call L__ZN1MD1Ev
58// CHECK-LP32: .globl __ZN1MD1Ev
59// CHECK-LP32-NEXT: .weak_definition __ZN1MD1Ev
60// CHECK-LP32-NEXT:__ZN1MD1Ev: