Skip to content

Commit 974c9a9

Browse files
Update tokenlist.cpp
1 parent c164444 commit 974c9a9

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

lib/tokenlist.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1951,8 +1951,11 @@ void TokenList::validateAst(bool print) const
19511951
if (tok->str() == "?") {
19521952
if (!tok->astOperand1() || !tok->astOperand2())
19531953
throw InternalError(tok, "AST broken, ternary operator missing operand(s)", InternalError::AST);
1954-
if (tok->astOperand2()->str() != ":")
1954+
const Token* colon = tok->astOperand2();
1955+
if (colon->str() != ":")
19551956
throw InternalError(tok, "Syntax Error: AST broken, ternary operator lacks ':'.", InternalError::AST);
1957+
if ((colon->astOperand1() && !precedes(colon->astOperand1(), colon)) || !succeeds(colon->astOperand2(), colon))
1958+
throw InternalError(tok, "AST broken, ternary operator has bad operand(s)", InternalError::AST);
19561959
}
19571960

19581961
// Check for endless recursion

0 commit comments

Comments
 (0)