xref: /aosp_15_r20/external/clang/test/SemaObjC/gcc-cast-ext.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -verify -fms-extensions -Wno-objc-root-class %s
2*67e74705SXin Li@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
3*67e74705SXin Litypedef struct _NSRange { } NSRange;
4*67e74705SXin Li
5*67e74705SXin Li@class PBXFileReference;
6*67e74705SXin Li
7*67e74705SXin Li@interface PBXDocBookmark
8*67e74705SXin Li+ alloc;	// expected-note {{method 'alloc' declared here}}
9*67e74705SXin Li- autorelease;	// expected-note {{method 'autorelease' declared here}}
10*67e74705SXin Li@end
11*67e74705SXin Li
12*67e74705SXin Li// GCC allows pointer expressions in integer constant expressions.
13*67e74705SXin Listruct {
14*67e74705SXin Li  char control[((int)(char *)2)];
15*67e74705SXin Li} xx;
16*67e74705SXin Li
17*67e74705SXin Li@implementation PBXDocBookmark // expected-warning {{method definition for 'autorelease' not found}}\
18*67e74705SXin Li                               // expected-warning {{method definition for 'alloc' not found}}
19*67e74705SXin Li
20*67e74705SXin Li+ (id)bookmarkWithFileReference:(PBXFileReference *)fileRef gylphRange:(NSRange)range anchor:(NSString *)htmlAnchor
21*67e74705SXin Li{
22*67e74705SXin Li    NSRange r = (NSRange)range;
23*67e74705SXin Li    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*67e74705SXin Li}
25*67e74705SXin Li@end
26