summaryrefslogtreecommitdiffstats
path: root/test/Rewriter/objc-modern-StretAPI.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/Rewriter/objc-modern-StretAPI.mm')
-rw-r--r--test/Rewriter/objc-modern-StretAPI.mm45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/Rewriter/objc-modern-StretAPI.mm b/test/Rewriter/objc-modern-StretAPI.mm
new file mode 100644
index 0000000..129b56c
--- /dev/null
+++ b/test/Rewriter/objc-modern-StretAPI.mm
@@ -0,0 +1,45 @@
+// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
+// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
+// rdar://11359268
+
+extern "C" void *sel_registerName(const char *);
+typedef unsigned long size_t;
+
+union U {
+ double d1;
+ char filler[32];
+};
+
+struct S {
+ char filler[128];
+};
+
+@interface I
+- (struct S) Meth : (int) arg1 : (id) arg2;
+- (struct S) Meth1;
+- (union U) Meth2 : (double)d;
+- (struct S) VAMeth : (int)anchor, ...;
+@end
+
+I* PI();
+
+extern "C" {
+
+struct S foo () {
+ struct S s = [PI() Meth : 1 : (id)0];
+
+ U u = [PI() Meth2 : 3.14];
+
+ S s1 = [PI() VAMeth : 12, 13.4, 1000, "hello"];
+
+ S s2 = [PI() VAMeth : 12];
+
+ S s3 = [PI() VAMeth : 0, "hello", "there"];
+
+ S s4 = [PI() VAMeth : 2, ^{}, &foo];
+
+ return [PI() Meth1];
+}
+
+}
+
OpenPOWER on IntegriCloud