// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s struct A { ~A(); }; @interface B { A a; } - (const A&)getA; @end @implementation B - (const A&)getA { return a; } @end // CHECK-LABEL: define void @_Z1fP1B // CHECK: objc_msgSend to // CHECK-NOT: call void @_ZN1AD1Ev // CHECK: ret void void f(B* b) { (void)[b getA]; } // PR7741 @protocol P1 @end @protocol P2 @end @protocol P3 @end @interface foo<P1> {} @end @interface bar : foo <P1, P2, P3> {} @end typedef bar baz; void f5(foo&); void f5b(foo<P1>&); void f5c(foo<P2>&); void f5d(foo<P3>&); void f6(baz* x) { f5(*x); f5b(*x); f5c(*x); f5d(*x); (void)((foo&)*x); }