| 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 | |