diff options
author | Christian Kamm <kamm@incasoftware.de> | 2014-05-31 14:55:35 +0200 |
---|---|---|
committer | Christian Kamm <kamm@incasoftware.de> | 2014-06-04 09:17:56 +0200 |
commit | eee94667e632a5435a32da2734dd681b3a5ecac9 (patch) | |
tree | 276c9935ee72fc686453b93069e76426cd0a0014 /src/libs/3rdparty/cplusplus/Parser.h | |
parent | 4ea8499fdc5afc0deca911b4367cf49b1be719f0 (diff) |
C++11: Fix parsing of trailing-type-specifier.
In particular "auto foo() -> typename Foo<T>::X;" didn't parse.
Change-Id: I7665c9b387e222e4107f053a529d502813ebf617
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Parser.h')
-rw-r--r-- | src/libs/3rdparty/cplusplus/Parser.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/libs/3rdparty/cplusplus/Parser.h b/src/libs/3rdparty/cplusplus/Parser.h index 1a2bfa04fd..ea49df5e56 100644 --- a/src/libs/3rdparty/cplusplus/Parser.h +++ b/src/libs/3rdparty/cplusplus/Parser.h @@ -167,15 +167,18 @@ public: bool parseAttributeSpecifier(SpecifierListAST *&node); bool parseAttributeList(AttributeListAST *&node); - bool parseSimpleTypeSpecifier(SpecifierListAST *&node) - { return parseDeclSpecifierSeq(node, true, true); } + bool parseDeclSpecifierSeq(SpecifierListAST *&node, + bool noStorageSpecifiers = false, + bool onlySimpleTypeSpecifiers = false); - bool parseTypeSpecifier(SpecifierListAST *&node) + bool parseTrailingTypeSpecifierSeq(SpecifierListAST *&node) { return parseDeclSpecifierSeq(node, true); } + /// This actually parses a trailing-type-specifier sequence + bool parseTypeSpecifier(SpecifierListAST *&node) + { return parseTrailingTypeSpecifierSeq(node); } + bool parseSimpleTypeSpecifier(SpecifierListAST *&node) + { return parseDeclSpecifierSeq(node, true, true); } - bool parseDeclSpecifierSeq(SpecifierListAST *&node, - bool onlyTypeSpecifiers = false, - bool simplified = false); bool parseUnaryExpression(ExpressionAST *&node); bool parseUnqualifiedName(NameAST *&node, bool acceptTemplateId = true); bool parseUsing(DeclarationAST *&node); @@ -202,7 +205,6 @@ public: bool parseCapture(CaptureAST *&node); bool parseCaptureList(CaptureListAST *&node); bool parseTrailingReturnType(TrailingReturnTypeAST *&node); - bool parseTrailingTypeSpecifierSeq(SpecifierListAST *&node); // ObjC++ bool parseObjCExpression(ExpressionAST *&node); |