60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 %s -o %t-rw.cpp
 | |
| // RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
 | |
| // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-modern-rw.cpp
 | |
| // RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp
 | |
| // radar 7682149
 | |
| 
 | |
| 
 | |
| typedef unsigned long size_t;
 | |
| void f(void (^block)(void));
 | |
| 
 | |
| @interface X {
 | |
| 	int y;
 | |
| }
 | |
| - (void)foo;
 | |
| @end
 | |
| 
 | |
| @implementation X
 | |
| - (void)foo {
 | |
|     f(^{
 | |
|   f(^{
 | |
|     f(^{
 | |
|       y=42;
 | |
|     });
 | |
|   });
 | |
| });
 | |
| 
 | |
| }
 | |
| @end
 | |
| 
 | |
| struct S {
 | |
|   int y;
 | |
| };
 | |
| 
 | |
| void foo () {
 | |
| 	struct S *SELF;
 | |
| 	f(^{
 | |
| 		f(^{
 | |
| 			SELF->y = 42;
 | |
| 		});
 | |
| 	});
 | |
| }
 | |
| 
 | |
| // radar 7692419
 | |
| @interface Bar
 | |
| @end
 | |
| 
 | |
| void f(Bar *);
 | |
| void q(void (^block)(void));
 | |
| 
 | |
| void x() {
 | |
|         void (^myblock)(Bar *b) = ^(Bar *b) {
 | |
|                 q(^{
 | |
|                         f(b);   
 | |
|                 });
 | |
|         };
 | |
|         
 | |
|         Bar *b = (Bar *)42;
 | |
|         myblock(b);
 | |
| }
 |