aboutsummaryrefslogtreecommitdiff
path: root/test/Parser
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-04-18 23:43:21 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-04-18 23:43:21 +0000
commit0c7102f070c10a261ea40700cfbb9102f642ad72 (patch)
treeb297323469011630bcd6a0b39cb3f77e6fceed86 /test/Parser
parent38dbad233bfc7906e38e028707ffe5925b9ca46c (diff)
Objective-C++: Enable passing of modern C++11 style
initialized temporaries to objc++ methods. // rdar://12788429 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179818 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Parser')
-rw-r--r--test/Parser/objcxx11-initialized-temps.mm38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/Parser/objcxx11-initialized-temps.mm b/test/Parser/objcxx11-initialized-temps.mm
new file mode 100644
index 0000000000..96f19fe6a5
--- /dev/null
+++ b/test/Parser/objcxx11-initialized-temps.mm
@@ -0,0 +1,38 @@
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
+// expected-no-diagnostics
+// rdar://12788429
+
+struct CGPoint {
+ double x;
+ double y;
+};
+typedef struct CGPoint CGPoint;
+
+struct CGSize {
+ double width;
+ double height;
+};
+typedef struct CGSize CGSize;
+
+struct CGRect {
+ CGPoint origin;
+ CGSize size;
+};
+typedef struct CGRect CGRect;
+
+typedef CGRect NSRect;
+
+void HappySetFrame(NSRect frame) {}
+
+__attribute__((objc_root_class))
+@interface NSObject @end
+
+@implementation NSObject
+- (void) sadSetFrame: (NSRect)frame {}
+
+- (void) nothing
+{
+ HappySetFrame({{0,0}, {13,14}});
+ [self sadSetFrame: {{0,0}, {13,14}}];
+}
+@end