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