diff options
Diffstat (limited to 'test/Rewriter/rewrite-modern-extern-c-func-decl.mm')
-rw-r--r-- | test/Rewriter/rewrite-modern-extern-c-func-decl.mm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/Rewriter/rewrite-modern-extern-c-func-decl.mm b/test/Rewriter/rewrite-modern-extern-c-func-decl.mm index 82d5a4d..c3bfec9 100644 --- a/test/Rewriter/rewrite-modern-extern-c-func-decl.mm +++ b/test/Rewriter/rewrite-modern-extern-c-func-decl.mm @@ -2,6 +2,7 @@ // RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -Wno-attributes -D"Class=void*" -D"id=void*" -D"SEL=void*" -U__declspec -D"__declspec(X)=" %t-rw.cpp // rdar://11131490 +typedef unsigned long size_t; extern "C" __declspec(dllexport) void BreakTheRewriter(void) { __block int aBlockVariable = 0; void (^aBlock)(void) = ^ { @@ -43,3 +44,51 @@ main (int argc, char *argv[]) bBlockVariable = 42; }; } + +// rdar://11275241 +static char stringtype; +char CFStringGetTypeID(); +void x(void (^)()); + +static void initStatics(int arg, ...) { + x(^{ + stringtype = CFStringGetTypeID(); + }); +} +static void initStatics1(...) { + x(^{ + stringtype = CFStringGetTypeID(); + }); +} +static void initStatics2() { + x(^{ + stringtype = CFStringGetTypeID(); + }); +} + +// rdar://11314329 +static inline const void *auto_zone_base_pointer(void *zone, const void *ptr) { return 0; } + +@interface I +{ + id list; +} +- (void) Meth; +// radar 7589385 use before definition +- (void) allObjects; +@end + +@implementation I +// radar 7589385 use before definition +- (void) allObjects { + __attribute__((__blocks__(byref))) id *listp; + + void (^B)(void) = ^(void) { + *listp++ = 0; + }; + + B(); +} +- (void) Meth { __attribute__((__blocks__(byref))) void ** listp = (void **)list; } +@end + |