Mercurial > hg > CbC > CbC_llvm
view clang/test/Rewriter/protocol-rewrite-1.m @ 180:680fa57a2f20
fix compile errors.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 30 May 2020 17:44:06 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -x objective-c -Wno-objc-root-class -fms-extensions -rewrite-objc %s -o %t-rw.cpp // RUN: FileCheck --input-file=%t-rw.cpp %s // rdar://9846759 // rdar://15517895 typedef struct MyWidget { int a; } MyWidget; MyWidget gWidget = { 17 }; @protocol MyProto - (MyWidget *)widget; @end @interface Foo @end @interface Bar: Foo <MyProto> @end @interface Container + (MyWidget *)elementForView:(Foo *)view; @end @implementation Foo @end @implementation Bar - (MyWidget *)widget { return &gWidget; } @end @implementation Container + (MyWidget *)elementForView:(Foo *)view { MyWidget *widget = (void*)0; if (@protocol(MyProto)) { widget = [(id <MyProto>)view widget]; } return widget; } @end int main(void) { id view; MyWidget *w = [Container elementForView: view]; return 0; } // rdar://15517895 @class NSObject; @interface NSProtocolChecker + (id)protocolCheckerWithTarget:(NSObject *)anObject protocol:(Protocol *)aProtocol; @end @protocol NSConnectionVersionedProtocol @end @interface NSConnection @end @implementation NSConnection - (void) Meth { [NSProtocolChecker protocolCheckerWithTarget:0 protocol:@protocol(NSConnectionVersionedProtocol)]; } @end // CHECK: static struct _protocol_t *_OBJC_PROTOCOL_REFERENCE_$_NSConnectionVersionedProtocol = &_OBJC_PROTOCOL_NSConnectionVersionedProtocol // CHECK: sel_registerName("protocolCheckerWithTarget:protocol:"), (NSObject *)0, (Protocol *)_OBJC_PROTOCOL_REFERENCE_$_NSConnectionVersionedProtocol