summaryrefslogtreecommitdiffstats
path: root/clang/test/Parser/objc-default-ctor-init.mm
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2016-04-18 18:19:45 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2016-04-18 18:19:45 +0000
commitbd59b4894e811bd2c638e390aeff8b39e1ee1919 (patch)
tree43ecf05d89230b9172babe32cedc4cabc053be4b /clang/test/Parser/objc-default-ctor-init.mm
parent05164816f0ead8544fac2103b3280ad6703e7847 (diff)
downloadbcm5719-llvm-bd59b4894e811bd2c638e390aeff8b39e1ee1919.tar.gz
bcm5719-llvm-bd59b4894e811bd2c638e390aeff8b39e1ee1919.zip
[Parser][ObjC] Make sure c++11 in-class initialization is done when the
constructor's definition is in an implementation block. Without this commit, ptr doesn't get initialized to null in the following code: struct S { S(); void *ptr = nullptr; }; @implementation I S::S() {} @end rdar://problem/25693624 llvm-svn: 266645
Diffstat (limited to 'clang/test/Parser/objc-default-ctor-init.mm')
-rw-r--r--clang/test/Parser/objc-default-ctor-init.mm17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/Parser/objc-default-ctor-init.mm b/clang/test/Parser/objc-default-ctor-init.mm
new file mode 100644
index 00000000000..fda8befa377
--- /dev/null
+++ b/clang/test/Parser/objc-default-ctor-init.mm
@@ -0,0 +1,17 @@
+// RUN: %clang_cc1 -triple x86_64-apple-macosx10.10 -std=c++11 -ast-dump %s | FileCheck %s
+// CHECK: CXXCtorInitializer Field {{.*}} 'ptr' 'void *'
+
+@interface NSObject
+@end
+
+@interface I : NSObject
+@end
+
+struct S {
+ S();
+ void *ptr = nullptr;
+};
+
+@implementation I
+S::S() {}
+@end
OpenPOWER on IntegriCloud