summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Parse/ParseObjc.cpp2
-rw-r--r--clang/test/Parser/objc-default-ctor-init.mm17
2 files changed, 19 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp
index 708e2a7edc1..4b4494d27be 100644
--- a/clang/lib/Parse/ParseObjc.cpp
+++ b/clang/lib/Parse/ParseObjc.cpp
@@ -3651,6 +3651,8 @@ void Parser::ParseLexedObjCMethodDefs(LexedMethod &LM, bool parseMethod) {
else {
if (Tok.is(tok::colon))
ParseConstructorInitializer(MCDecl);
+ else
+ Actions.ActOnDefaultCtorInitializers(MCDecl);
ParseFunctionStatementBody(MCDecl, BodyScope);
}
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