1 // RUN: %clang_cc1 -triple x86_64-apple-darwin -S %s -o %t-64.s
2 // RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s
3 // RUN: %clang_cc1 -triple i386-apple-darwin -S %s -o %t-32.s
4 // RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s
5 
6 struct A {};
7 
8 struct B
9 {
10   operator A&();
11 };
12 
13 
14 struct D : public B {
15   operator A();
16 };
17 
18 extern B f();
19 extern D d();
20 
21 int main() {
22 	const A& rca = f();
23 	const A& rca2 = d();
24 }
25 
26 // CHECK-LP64: callq    __ZN1BcvR1AEv
27 // CHECK-LP64: callq    __ZN1BcvR1AEv
28 
29 // CHECK-LP32: calll     L__ZN1BcvR1AEv
30 // CHECK-LP32: calll     L__ZN1BcvR1AEv
31