summaryrefslogtreecommitdiff
path: root/src/libs/3rdparty/cplusplus/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Parser.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Parser.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp
index 962afdf240..da67e51b63 100644
--- a/src/libs/3rdparty/cplusplus/Parser.cpp
+++ b/src/libs/3rdparty/cplusplus/Parser.cpp
@@ -5593,7 +5593,13 @@ void Parser::parseExpressionWithOperatorPrecedence(ExpressionAST *&lhs, int minP
{
DEBUG_THIS_RULE();
+ unsigned iterations = 0;
while (precedence(tok().kind(), _templateArguments) >= minPrecedence) {
+ if (++iterations > MAX_EXPRESSION_DEPTH) {
+ warning(cursor(), "Reached parse limit for expression");
+ return;
+ }
+
const int operPrecedence = precedence(tok().kind(), _templateArguments);
const int oper = consumeToken();