blob: d5ac986b3833f0d82750becd39a828687ad6709e [file] [log] [blame]
Mike Stumpa8285a82009-11-15 03:28:10 +00001// RUN: clang-cc -triple x86_64-apple-darwin -std=c++0x -O0 -S %s -o %t.s
2// RUN: FileCheck --input-file=%t.s %s
3
4class test1_B1 {
5 virtual void foo() { }
6};
7class test1_B2 : public test1_B1 {
8 virtual void foo() { }
9};
10class test1_B3 : public test1_B2, public test1_B1 {
11 virtual void foo() { }
12};
13class test1_B4 : virtual public test1_B3 {
14 virtual void foo() { }
15};
16class test1_B5 : virtual test1_B3, test1_B4 {
17 virtual void foo() { }
18};
19class test1_B6 {
20 virtual void foo() { }
21};
22class test1_B7 : public test1_B6, public test1_B5 {
23 virtual void foo() { }
24};
25class test1_D : public test1_B7 {
26 virtual void foo() { }
27} d1;
28
29// CHECK:__ZTI7test1_D:
30// CHECK-NEXT: .quad (__ZTVN10__cxxabiv120__si_class_type_infoE) + 16
31// CHECK-NEXT: .quad __ZTS7test1_D
32// CHECK-NEXT: .quad __ZTI8test1_B7
33
34// CHECK:__ZTI8test1_B7:
35// CHECK-NEXT: .quad (__ZTVN10__cxxabiv121__vmi_class_type_infoE) + 16
36// CHECK-NEXT: .quad __ZTS8test1_B7
37// CHECK-NEXT: .long 3
38// CHECK-NEXT: .long 2
39// CHECK-NEXT: .quad __ZTI8test1_B6
40// CHECK-NEXT: .quad 2
41// CHECK-NEXT: .quad __ZTI8test1_B5
42// CHECK-NEXT: .quad 2050
43
44// CHECK:__ZTI8test1_B5:
45// CHECK-NEXT: .quad (__ZTVN10__cxxabiv121__vmi_class_type_infoE) + 16
46// CHECK-NEXT: .quad __ZTS8test1_B5
47// CHECK-NEXT: .long 3
48// CHECK-NEXT: .long 2
49// CHECK-NEXT: .quad __ZTI8test1_B3
50// CHECK-NEXT: .quad 18446744073709545473
51// CHECK-NEXT: .quad __ZTI8test1_B4
52// CHECK-NEXT: .space 8
53
54// CHECK:__ZTI8test1_B4:
55// CHECK-NEXT: .quad (__ZTVN10__cxxabiv121__vmi_class_type_infoE) + 16
56// CHECK-NEXT: .quad __ZTS8test1_B4
57// CHECK-NEXT: .long 1
58// CHECK-NEXT: .long 1
59// CHECK-NEXT: .quad __ZTI8test1_B3
60// CHECK-NEXT: .quad 18446744073709545475
61
62// CHECK:__ZTI8test1_B6:
63// CHECK-NEXT: .quad (__ZTVN10__cxxabiv117__class_type_infoE) + 16
64// CHECK-NEXT: .quad __ZTS8test1_B6
65
66// CHECK:__ZTI8test1_B3:
67// CHECK-NEXT: .quad (__ZTVN10__cxxabiv121__vmi_class_type_infoE) + 16
68// CHECK-NEXT: .quad __ZTS8test1_B3
69// CHECK-NEXT: .long 1
70// CHECK-NEXT: .long 2
71// CHECK-NEXT: .quad __ZTI8test1_B2
72// CHECK-NEXT: .quad 2
73// CHECK-NEXT: .quad __ZTI8test1_B1
74// CHECK-NEXT: .quad 2050
75
76// CHECK:__ZTS8test1_B1:
77// CHECK-NEXT: .asciz "8test1_B1"
78
79// CHECK:__ZTI8test1_B1:
80// CHECK-NEXT: .quad (__ZTVN10__cxxabiv117__class_type_infoE) + 16
81// CHECK-NEXT:. quad __ZTS8test1_B1
82
83// CHECK:__ZTS8test1_B2:
84// CHECK-NEXT: .asciz "8test1_B2"
85
86// CHECK:__ZTI8test1_B2:
87// CHECK-NEXT: .quad (__ZTVN10__cxxabiv120__si_class_type_infoE) + 16
88// CHECK-NEXT: .quad __ZTS8test1_B2
89// CHECK-NEXT: .quad __ZTI8test1_B1