Fixed #9382 (Hang: CheckLeakAutoVar pellepl/spiffs/src/spiffs_hydrogen.c)
This commit is contained in:
parent
8f46bb3ef6
commit
b97436e8f8
|
@ -836,6 +836,13 @@ static void compilePrecedence2(Token *&tok, AST_state& state)
|
|||
compileUnaryOp(tok, state, nullptr);
|
||||
}
|
||||
tok = tok->link()->next();
|
||||
} else if (iscast(tok) && Token::simpleMatch(tok->link(), ") {") && Token::simpleMatch(tok->link()->linkAt(1), "} [")) {
|
||||
Token *cast = tok;
|
||||
tok = tok->link()->next();
|
||||
Token *tok1 = tok;
|
||||
compileUnaryOp(tok, state, compileExpression);
|
||||
cast->astOperand1(tok1);
|
||||
tok = tok1->link()->next();
|
||||
} else if (state.cpp && tok->str() == "{" && iscpp11init(tok)) {
|
||||
if (Token::simpleMatch(tok, "{ }"))
|
||||
compileUnaryOp(tok, state, compileExpression);
|
||||
|
|
|
@ -7426,8 +7426,9 @@ private:
|
|||
ASSERT_EQUALS("ac5[new(=", testAst("a = (b*)(new c[5]);")); // #8786
|
||||
ASSERT_EQUALS("a(4+", testAst("(int)(a) + 4;"));
|
||||
|
||||
// TODO: This AST is incomplete however it's very weird syntax (taken from clang test suite)
|
||||
ASSERT_EQUALS("a&(", testAst("(int (**)[i]){&a}[0][1][5] = 0;"));
|
||||
// (cast){data}[index]
|
||||
ASSERT_EQUALS("a&{(0[1[5[0=", testAst("(int (**)[i]){&a}[0][1][5] = 0;"));
|
||||
ASSERT_EQUALS("ab12,{(0[,(", testAst("a(b, (int []){1,2}[0]);"));
|
||||
ASSERT_EQUALS("n0=", testAst("TrivialDefCtor{[2][2]}[1][1].n = 0;"));
|
||||
ASSERT_EQUALS("aT12,3,{1[=", testAst("a = T{1, 2, 3}[1];"));
|
||||
|
||||
|
|
Loading…
Reference in New Issue