brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 7dda941 Raw
107 lines · plain
1// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 %s -o %t-rw.cpp2// RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp3// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-modern-rw.cpp4// RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp5 6typedef unsigned long size_t;7 8typedef void * id;9void *sel_registerName(const char *);10 11@interface X12@end13 14void foo(void (^block)(int));15 16@implementation X17static void enumerateIt(void (^block)(id, id, char *)) {18      foo(^(int idx) { });19}20@end21 22void apply(void (^block)(int));23 24static void x(int (^cmp)(int, int)) {25	x(cmp);26}27 28static void y(int (^cmp)(int, int)) {29	apply(^(int sect) {30		x(cmp);31    });32}33 34void *_Block_copy(const void *aBlock);35void x(void (^block)(void)) {36        block = ((__typeof(block))_Block_copy((const void *)(block)));37}38 39@interface Y {40@private41    id _private;42}43- (void (^)(void))f;44@end45 46typedef void (^void_block_t)(void);47 48@interface YY {49    void_block_t __completion;50}51@property (copy) void_block_t f;52@end53 54@implementation Y55- (void (^)(void))f {56    return [_private f];57}58 59@end60 61@protocol CoreDAVAccountInfoProvider;62@protocol CodeProvider;63typedef void (^BDVDiscoveryCompletionHandler)(int success, id<CoreDAVAccountInfoProvider> discoveredInfo);64typedef void (^BDVDiscoveryCompletion)(id<CodeProvider> codeInfo, int success, id<CoreDAVAccountInfoProvider> discoveredInfo);65typedef void (^BDVDiscovery)(int success);66typedef void (^BDVDisc)(id<CoreDAVAccountInfoProvider> discoveredInfo, id<CodeProvider> codeInfo, 67                        int success, id<CoreDAVAccountInfoProvider, CodeProvider> Info);68typedef void (^BLOCK)(id, id<CoreDAVAccountInfoProvider>, id<CodeProvider> codeInfo);69typedef void (^EMPTY_BLOCK)();70typedef void (^  BDVDiscoveryCompletion1  )(id<CodeProvider> codeInfo, int success, id<CoreDAVAccountInfoProvider> discoveredInfo);71 72void (^BL)(void(^arg1)(), int i1, void(^arg)(int));73 74typedef void (^iscoveryCompletionHandler)(void(^arg1)(), id<CoreDAVAccountInfoProvider> discoveredInfo);75 76typedef void (^DVDisc)(id<CoreDAVAccountInfoProvider> discoveredInfo, id<CodeProvider> codeInfo,77			void(^arg1)(), int i1, void(^arg)(id<CoreDAVAccountInfoProvider>),78                        int success, id<CoreDAVAccountInfoProvider, CodeProvider> Info);79 80 81@interface I @end82@interface INTF @end83void (^BLINT)(I<CoreDAVAccountInfoProvider>* ARG, INTF<CodeProvider, CoreDAVAccountInfoProvider>* ARG1);84 85void  test8608902() {86  BDVDiscoveryCompletionHandler ppp;87  ppp(1, 0);88}89 90void test9204669() {91   __attribute__((__blocks__(byref))) char (^addChangeToData)();92 93   addChangeToData = ^() {94      return 'b';95   };96   addChangeToData();97}98 99void test9204669_1() {100   __attribute__((__blocks__(byref))) void (^addChangeToData)();101 102   addChangeToData = ^() {103    addChangeToData();104   };105}106 107