diff options
author | David Blaikie <dblaikie@gmail.com> | 2012-02-14 09:00:46 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2012-02-14 09:00:46 +0000 |
commit | cdd91dbe9f08fcd481f0962ff7c55ae5761a6356 (patch) | |
tree | 9d4e03ab08c3e9048d8c57d1bcc2e6698f0c2b10 /clang/lib/Parse/ParseDeclCXX.cpp | |
parent | cfad98f745e210ba3211bd62b7fd362061449ee2 (diff) | |
download | bcm5719-llvm-cdd91dbe9f08fcd481f0962ff7c55ae5761a6356.tar.gz bcm5719-llvm-cdd91dbe9f08fcd481f0962ff7c55ae5761a6356.zip |
Fix crash-on-invalid for 'operator int[]()' in C++11.
Signed off by Richard Smith.
llvm-svn: 150464
Diffstat (limited to 'clang/lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDeclCXX.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index cc0cf15e739..6213824cae3 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -1989,11 +1989,12 @@ void Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, // declarator is followed by an initializer. // // A brace-or-equal-initializer for a member-declarator is not an - // initializer in the gramamr, so this is ill-formed. + // initializer in the grammar, so this is ill-formed. Diag(Tok, diag::err_incomplete_array_member_init); SkipUntil(tok::comma, true, true); - // Avoid later warnings about a class member of incomplete type. - ThisDecl->setInvalidDecl(); + if (ThisDecl) + // Avoid later warnings about a class member of incomplete type. + ThisDecl->setInvalidDecl(); } else ParseCXXNonStaticMemberInitializer(ThisDecl); } else if (HasInitializer) { |