[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / CodeGenObjCXX / references.mm
blobbb7c9ed7ee7f311ce955fa713109a453fa97771b
1 // RUN: %clang_cc1 -no-opaque-pointers %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
3 struct A { ~A(); };
5 @interface B {
6   A a;
9 - (const A&)getA;
10 @end
12 @implementation B 
14 - (const A&)getA {
15   return a;
18 @end
20 // CHECK-LABEL: define{{.*}} void @_Z1fP1B
21 // CHECK: objc_msgSend to
22 // CHECK-NOT: call void @_ZN1AD1Ev
23 // CHECK: ret void
24 void f(B* b) {
25   (void)[b getA];
28 // PR7741
29 @protocol P1 @end
30 @protocol P2 @end
31 @protocol P3 @end
32 @interface foo<P1> {} @end
33 @interface bar : foo <P1, P2, P3> {} @end
34 typedef bar baz;
35 void f5(foo&);
36 void f5b(foo<P1>&);
37 void f5c(foo<P2>&);
38 void f5d(foo<P3>&);
39 void f6(baz* x) { 
40   f5(*x); 
41   f5b(*x); 
42   f5c(*x); 
43   f5d(*x);
44   (void)((foo&)*x);