[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / SemaObjC / incomplete-implementation.m
blob910cda5f07d148071cbd93c658cb6dfa56e1c5e0
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -fsyntax-only -verify -Wno-objc-root-class %s
3 @interface I
4 - Meth; // expected-note 2 {{method 'Meth' declared here}}
5 - unavailableMeth __attribute__((availability(macosx,unavailable)));
6 - unavailableMeth2 __attribute__((unavailable));
7 @end
9 @implementation  I  // expected-warning {{method definition for 'Meth' not found}}
10 @end
12 @implementation I(CAT)
13 - Meth {return 0;} // expected-warning {{category is implementing a method which will also be implemented by its primary class}}
14 @end
16 // rdar://40634455
17 @interface MyClass
18 -(void)mymeth __attribute__((availability(macos, introduced=100))); // expected-note{{here}}
19 @end
20 @implementation MyClass // expected-warning{{'mymeth' not found}}
21 @end
23 #pragma GCC diagnostic ignored "-Wincomplete-implementation"
24 @interface I2
25 - Meth; // expected-note{{method 'Meth' declared here}}
26 @end
28 @implementation  I2
29 @end
31 @implementation I2(CAT)
32 - Meth {return 0;} // expected-warning {{category is implementing a method which will also be implemented by its primary class}}
33 @end
35 @interface Q
36 @end
38 // rdar://10336158
39 @implementation Q
41 __attribute__((visibility("default")))
42 @interface QN // expected-error {{Objective-C declarations may only appear in global scope}}
45 @end
47 @end
49 // rdar://15580969
50 typedef char BOOL;
52 @protocol NSObject
53 - (BOOL)isEqual:(id)object;
54 @end
56 @interface NSObject <NSObject>
57 @end
59 @protocol NSApplicationDelegate <NSObject>
60 - (void)ImpleThisMethod; // expected-note {{method 'ImpleThisMethod' declared here}}
61 @end
63 @interface AppDelegate : NSObject <NSApplicationDelegate>
64 @end
66 @implementation AppDelegate (MRRCategory)
68 - (BOOL)isEqual:(id)object
70     return __objc_no;
73 - (void)ImpleThisMethod {} // expected-warning {{category is implementing a method which will also be implemented by its primary class}}
74 @end