diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-06-10 20:21:15 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-06-10 20:21:15 +0000 |
commit | cef7d378b68c7328d212e17b6fd3dc74b5d08086 (patch) | |
tree | 1159dbc3301660cc9eed485e10b59b3aa5c5e139 /clang/lib/Parse/ParseCXXInlineMethods.cpp | |
parent | 094f17beebea8fb909e99747979707a1bc1ceec4 (diff) | |
download | llvm-cef7d378b68c7328d212e17b6fd3dc74b5d08086.zip llvm-cef7d378b68c7328d212e17b6fd3dc74b5d08086.tar.gz llvm-cef7d378b68c7328d212e17b6fd3dc74b5d08086.tar.bz2 |
[-fms-extensions] Don't crash on explicit class-scope specializations & default arguments
The code had a typo it was doing:
Param->setUninstantiatedDefaultArg(Param->getUninstantiatedDefaultArg());
This is a no-op but may assert, we wanted to do:
Param->setUninstantiatedDefaultArg(OldParam->getUninstantiatedDefaultArg());
This fixes PR28082.
llvm-svn: 272425
Diffstat (limited to 'clang/lib/Parse/ParseCXXInlineMethods.cpp')
-rw-r--r-- | clang/lib/Parse/ParseCXXInlineMethods.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseCXXInlineMethods.cpp b/clang/lib/Parse/ParseCXXInlineMethods.cpp index 3db75c7..3c51342 100644 --- a/clang/lib/Parse/ParseCXXInlineMethods.cpp +++ b/clang/lib/Parse/ParseCXXInlineMethods.cpp @@ -381,7 +381,7 @@ void Parser::ParseLexedMethodDeclaration(LateParsedMethodDeclaration &LM) { assert (!OldParam->hasUnparsedDefaultArg()); if (OldParam->hasUninstantiatedDefaultArg()) Param->setUninstantiatedDefaultArg( - Param->getUninstantiatedDefaultArg()); + OldParam->getUninstantiatedDefaultArg()); else Param->setDefaultArg(OldParam->getInit()); } |