diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-02-02 22:24:54 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-02-02 22:24:54 +0000 |
commit | 82ecd7e4b1e4a0477ea29e0dccd8bbea6e4e137f (patch) | |
tree | c2101d8147a1599a5ec4bba2975a40cbafb364e8 /lib/Parse/ParseDeclCXX.cpp | |
parent | 701a3b68f6465fc3c6ca3576ee3473ecc33d9814 (diff) |
Add missing direct-init / parameter-declaration-clause disambiguation when
parsing a trailing-return-type of a (function pointer) variable declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@324151 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | lib/Parse/ParseDeclCXX.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index 68b73ca1d2..172950fc67 100644 --- a/lib/Parse/ParseDeclCXX.cpp +++ b/lib/Parse/ParseDeclCXX.cpp @@ -3706,12 +3706,15 @@ ExceptionSpecificationType Parser::ParseDynamicExceptionSpecification( /// ParseTrailingReturnType - Parse a trailing return type on a new-style /// function declaration. -TypeResult Parser::ParseTrailingReturnType(SourceRange &Range) { +TypeResult Parser::ParseTrailingReturnType(SourceRange &Range, + bool MayBeFollowedByDirectInit) { assert(Tok.is(tok::arrow) && "expected arrow"); ConsumeToken(); - return ParseTypeName(&Range, DeclaratorContext::TrailingReturnContext); + return ParseTypeName(&Range, MayBeFollowedByDirectInit + ? DeclaratorContext::TrailingReturnVarContext + : DeclaratorContext::TrailingReturnContext); } /// \brief We have just started parsing the definition of a new class, |