[llvm-commits] [test-suite] r105348 - /test-suite/trunk/SingleSource/UnitTests/reference-in-block-args.cpp
Fariborz Jahanian
fjahanian at apple.com
Wed Jun 2 14:51:08 PDT 2010
Author: fjahanian
Date: Wed Jun 2 16:51:08 2010
New Revision: 105348
URL: http://llvm.org/viewvc/llvm-project?rev=105348&view=rev
Log:
Test for radar 8041962 (reference in block args).
Added:
test-suite/trunk/SingleSource/UnitTests/reference-in-block-args.cpp
Added: test-suite/trunk/SingleSource/UnitTests/reference-in-block-args.cpp
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/reference-in-block-args.cpp?rev=105348&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/reference-in-block-args.cpp (added)
+++ test-suite/trunk/SingleSource/UnitTests/reference-in-block-args.cpp Wed Jun 2 16:51:08 2010
@@ -0,0 +1,32 @@
+extern "C" void abort (void);
+
+struct ST {
+ int filler;
+ int referrer;
+};
+
+void OUTER_BLOCK(void (^fixer)(ST& ref)) {
+ ST ref = {2, 100};
+ fixer(ref);
+}
+
+void INNER_BLOCK(int (^largeDo) ()) {
+ if (largeDo() != 102)
+ abort();
+}
+
+void scan() {
+ OUTER_BLOCK(^(ST &ref) {
+ INNER_BLOCK(^() {
+ if (ref.referrer != 100)
+ abort();
+ return ref.referrer + ref.filler;
+ });
+ });
+
+}
+
+int main(int argc, const char *argv[]) {
+ scan();
+ return 0;
+}
More information about the llvm-commits
mailing list