1 | // RUN: %clang_cc1 -verify -fms-extensions -Wno-objc-root-class %s |
2 | @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator; |
3 | typedef struct _NSRange { } NSRange; |
4 | |
5 | @class PBXFileReference; |
6 | |
7 | @interface PBXDocBookmark |
8 | + alloc; // expected-note {{method 'alloc' declared here}} |
9 | - autorelease; // expected-note {{method 'autorelease' declared here}} |
10 | @end |
11 | |
12 | // GCC allows pointer expressions in integer constant expressions. |
13 | struct { |
14 | char control[((int)(char *)2)]; |
15 | } xx; |
16 | |
17 | @implementation PBXDocBookmark // expected-warning {{method definition for 'autorelease' not found}}\ |
18 | // expected-warning {{method definition for 'alloc' not found}} |
19 | |
20 | + (id)bookmarkWithFileReference:(PBXFileReference *)fileRef gylphRange:(NSRange)range anchor:(NSString *)htmlAnchor |
21 | { |
22 | NSRange r = (NSRange)range; |
23 | return [[[self alloc] initWithFileReference:fileRef gylphRange:(NSRange)range anchor:(NSString *)htmlAnchor] autorelease]; // expected-warning {{method '-initWithFileReference:gylphRange:anchor:' not found (return type defaults to 'id')}} |
24 | } |
25 | @end |
26 | |