diff options
author | Akira Hatanaka <ahatanaka@apple.com> | 2016-04-18 18:19:45 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@apple.com> | 2016-04-18 18:19:45 +0000 |
commit | bd59b4894e811bd2c638e390aeff8b39e1ee1919 (patch) | |
tree | 43ecf05d89230b9172babe32cedc4cabc053be4b /clang/lib/Parse/ParseObjc.cpp | |
parent | 05164816f0ead8544fac2103b3280ad6703e7847 (diff) | |
download | bcm5719-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/lib/Parse/ParseObjc.cpp')
-rw-r--r-- | clang/lib/Parse/ParseObjc.cpp | 2 |
1 files changed, 2 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); } |