[cfe-commits] r155585 - in /cfe/trunk/test/Rewriter: rewrite-byref-in-nested-blocks.mm rewrite-modern-block-consts.mm rewrite-modern-captured-nested-bvar.mm rewrite-modern-extern-c-func-decl.mm rewrite-rewritten-initializer.mm

Fariborz Jahanian fjahanian at apple.com
Wed Apr 25 13:48:00 PDT 2012


Author: fjahanian
Date: Wed Apr 25 15:48:00 2012
New Revision: 155585

URL: http://llvm.org/viewvc/llvm-project?rev=155585&view=rev
Log:
objective-c modern translator: more tests.


Added:
    cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm
    cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm
Modified:
    cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm
    cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm
    cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm

Modified: cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm?rev=155585&r1=155584&r2=155585&view=diff
==============================================================================
--- cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm (original)
+++ cfe/trunk/test/Rewriter/rewrite-byref-in-nested-blocks.mm Wed Apr 25 15:48:00 2012
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-fragile-abi %s -o %t-rw.cpp
 // RUN: %clang_cc1 -fsyntax-only -fblocks -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 -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp
+// RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp
 // radar 7692350
 
 void f(void (^block)(void));

Added: cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm?rev=155585&view=auto
==============================================================================
--- cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm (added)
+++ cfe/trunk/test/Rewriter/rewrite-modern-block-consts.mm Wed Apr 25 15:48:00 2012
@@ -0,0 +1,19 @@
+// 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 -Werror -Wno-address-of-temporary -D"__declspec(X)=" %t-modern-rw.cpp
+// rdar:// 8243071
+
+void x(int y) {}
+void f() {
+    const int bar = 3;
+    int baz = 4;
+    __block int bab = 4;
+    __block const int bas = 5;
+    void (^b)() = ^{
+        x(bar);
+        x(baz);
+        x(bab);
+        x(bas);
+        b();
+    };
+    b();
+} 

Added: cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm?rev=155585&view=auto
==============================================================================
--- cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm (added)
+++ cfe/trunk/test/Rewriter/rewrite-modern-captured-nested-bvar.mm Wed Apr 25 15:48:00 2012
@@ -0,0 +1,35 @@
+// RUN: %clang_cc1 -E %s -o %t.mm
+// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s
+// rdar://9006279
+
+void q(void (^p)(void)) {
+    p();
+}
+
+void f() {
+    __block char BYREF_VAR_CHECK = 'a';
+    __block char d = 'd';
+    q(^{
+        q(^{
+            __block char e = 'e';
+            char l = 'l';
+            BYREF_VAR_CHECK = 'b';
+            d = 'd';
+            q(^{
+                 e = '1';
+                 BYREF_VAR_CHECK = '2';
+                 d = '3';
+               }
+             );
+        });
+    });
+}
+
+int main() {
+    f();
+    return 0;
+}
+
+// CHECK 2: (__Block_byref_BYREF_VAR_CHECK_0 *)BYREF_VAR_CHECK
+// CHECK: {(void*)0,(__Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, 0, sizeof(__Block_byref_BYREF_VAR_CHECK_0), 'a'}
+// CHECK: __Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, (__Block_byref_d_1 *)&d, 570425344));

Modified: cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm?rev=155585&r1=155584&r2=155585&view=diff
==============================================================================
--- cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm (original)
+++ cfe/trunk/test/Rewriter/rewrite-modern-extern-c-func-decl.mm Wed Apr 25 15:48:00 2012
@@ -70,3 +70,27 @@
 
 // rdar://11314329
 static inline const void *auto_zone_base_pointer(void *zone, const void *ptr) { return 0; }
+
+ at interface I
+{
+   id list;
+}
+- (void) Meth;
+// radar 7589385 use before definition
+- (void) allObjects;
+ at end
+
+ at 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; }
+ at end
+

Modified: cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm?rev=155585&r1=155584&r2=155585&view=diff
==============================================================================
--- cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm (original)
+++ cfe/trunk/test/Rewriter/rewrite-rewritten-initializer.mm Wed Apr 25 15:48:00 2012
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-fragile-abi %s -o %t-rw.cpp
 // RUN: %clang_cc1 -fsyntax-only -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-rw-modern.cpp
+// RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -D"SEL=void*" -D"__declspec(X)=" %t-rw-modern.cpp
 // radar 7669784
 
 typedef void * id;





More information about the cfe-commits mailing list