[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / Rewriter / rewrite-protocol-qualified.mm
blob7a7eed7373112fa6237c05ad4630e03573024c99
1 // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 %s -o %t-rw.cpp
2 // RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"SEL=void*" -D"id=void*" -D"__declspec(X)=" %t-rw.cpp
3 // radar 7589414
5 @protocol NSPortDelegate;
6 @interface NSConnection @end
8 @interface NSMessagePort
9 - (void) clone;
10 @end
12 @implementation NSMessagePort
13 - (void) clone {
14      NSConnection <NSPortDelegate> *conn = 0;
15      id <NSPortDelegate> *idc = 0;
17 @end
19 // radar 7607413
20 @protocol Proto1, Proto2;
22 @protocol Proto
23 @end
25 unsigned char func(id<Proto1, Proto2> inProxy);
27 id bar(id);
29 void f() {
30         id a;
31         id b = bar((id <Proto>)a);
34 // rdar://8472487
35 @protocol NSObject @end
36 @class NSRunLoop;
38 @protocol CoreDAVTaskManager <NSObject> 
39   @property (retain) NSRunLoop *workRunLoop;  
40 @end
43 // rdar://8475819
44 @protocol some_protocol;
46 void foo (int n)
48   id<some_protocol> array[n];