diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2014-10-01 18:03:51 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-10-01 18:03:51 +0000 |
commit | 7bd22e98be7d552e85b7f0516d1d6ff785c2757e (patch) | |
tree | f8e26007271ae479f8c5e1ee2662690c62f1f491 /clang/lib | |
parent | e261aa4311018816475f72c8cfba9a5e816ff6a8 (diff) | |
download | bcm5719-llvm-7bd22e98be7d552e85b7f0516d1d6ff785c2757e.tar.gz bcm5719-llvm-7bd22e98be7d552e85b7f0516d1d6ff785c2757e.zip |
c++ error recovery. Build a valid AST when trying
to recover from parse error parsing the default
argument. Patch prevents crash after spewing 100s
of errors caused by someone who forgot to compile in c++11
mode. So no test. rdar://18508589
llvm-svn: 218780
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index b35bca2c84e..ed15012a160 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -353,7 +353,9 @@ void Sema::ActOnParamDefaultArgumentError(Decl *param, Param->setInvalidDecl(); UnparsedDefaultArgLocs.erase(Param); Param->setDefaultArg(new(Context) - OpaqueValueExpr(EqualLoc, Param->getType(), VK_RValue)); + OpaqueValueExpr(EqualLoc, + Param->getType().getNonReferenceType(), + VK_RValue)); } /// CheckExtraCXXDefaultArguments - Check for any extra default |