aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/Parser.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2022-08-24 16:23:33 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2022-08-25 08:09:23 +0000
commitfa13f48c2b37f91690ba12e8f1b3162db7c3cb5c (patch)
tree4f5215123738e46c2f66c32b024db0615da2657b /src/libs/3rdparty/cplusplus/Parser.h
parent3172bba63c1234497fed360ba52d1c2588fc2132 (diff)
CPlusPlus: Fix mis-parsing array-related constructs
... as structured bindings. Also add a safety check to Bind that might be needed for invalid code. Amends ca00b874a7. Change-Id: I7b174b80ad97ed7424f1e369b876c99acf7e95d2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Parser.h')
-rw-r--r--src/libs/3rdparty/cplusplus/Parser.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libs/3rdparty/cplusplus/Parser.h b/src/libs/3rdparty/cplusplus/Parser.h
index 3a3b00fdf6..499a854490 100644
--- a/src/libs/3rdparty/cplusplus/Parser.h
+++ b/src/libs/3rdparty/cplusplus/Parser.h
@@ -79,7 +79,7 @@ public:
bool parseSimpleDeclaration(DeclarationAST *&node, ClassSpecifierAST *declaringClass = nullptr);
bool parseDeclarationStatement(StatementAST *&node);
bool parseCoreDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list, ClassSpecifierAST *declaringClass);
- DecompositionDeclaratorAST *parseDecompositionDeclarator();
+ DecompositionDeclaratorAST *parseDecompositionDeclarator(SpecifierListAST *decl_specifier_list);
bool parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list, ClassSpecifierAST *declaringClass = nullptr);
bool parseDeleteExpression(ExpressionAST *&node);
bool parseDoStatement(StatementAST *&node);
@@ -317,6 +317,8 @@ public:
void clearTemplateArgumentList() { _templateArgumentList.clear(); }
private:
+ bool hasAuto(SpecifierListAST *decl_specifier_list) const;
+
TranslationUnit *_translationUnit;
Control *_control;
MemoryPool *_pool;