Tokenizer: simplify GCC '({ %var%|%num% ; })' to '%var%|%num%'.
Remove useless brace around condition in simplifyFlowControl.
This commit is contained in:
parent
0f8db28d30
commit
64b4960acc
|
@ -2185,6 +2185,12 @@ void Tokenizer::simplifyRoundCurlyParenthesis()
|
||||||
tok->linkAt(2)->previous()->deleteNext(3);
|
tok->linkAt(2)->previous()->deleteNext(3);
|
||||||
tok->deleteNext(2);
|
tok->deleteNext(2);
|
||||||
}
|
}
|
||||||
|
if (Token::Match(tok, "( { %any% ; } )") &&
|
||||||
|
(tok->tokAt(2)->isNumber() || tok->tokAt(2)->isName())) {
|
||||||
|
tok->deleteNext();
|
||||||
|
tok->deleteThis();
|
||||||
|
tok->deleteNext(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2370,11 +2376,6 @@ static Token *skipTernaryOp(Token *tok)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//allow GCC '({ %var%|%num% ; })' statement expression extension
|
|
||||||
if (Token::Match(tok, "( { %any% ; } )") &&
|
|
||||||
(tok->tokAt(2)->isNumber() || tok->tokAt(2)->isName())) {
|
|
||||||
tok = tok->link();
|
|
||||||
}
|
|
||||||
if (Token::Match(tok->next(), "[{};]"))
|
if (Token::Match(tok->next(), "[{};]"))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3674,7 +3675,7 @@ void Tokenizer::simplifyFlowControl()
|
||||||
eraseDeadCode(tok, 0);
|
eraseDeadCode(tok, 0);
|
||||||
|
|
||||||
} else if (Token::Match(tok,"return|goto") ||
|
} else if (Token::Match(tok,"return|goto") ||
|
||||||
(Token::Match(tok,"exit|abort")) ||
|
Token::Match(tok,"exit|abort") ||
|
||||||
(tok->str() == "throw" && !isC())) {
|
(tok->str() == "throw" && !isC())) {
|
||||||
//TODO: ensure that we exclude user-defined 'exit|abort|throw', except for 'noreturn'
|
//TODO: ensure that we exclude user-defined 'exit|abort|throw', except for 'noreturn'
|
||||||
//catch the first ';'
|
//catch the first ';'
|
||||||
|
|
|
@ -6795,8 +6795,8 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void simplifyAssignmentBlock() {
|
void simplifyAssignmentBlock() {
|
||||||
ASSERT_EQUALS("; { x = 123 ; } ;", tokenizeAndStringify(";x=({123;});"));
|
ASSERT_EQUALS("; x = 123 ;", tokenizeAndStringify(";x=({123;});"));
|
||||||
ASSERT_EQUALS("; { x = y ; } ;", tokenizeAndStringify(";x=({y;});"));
|
ASSERT_EQUALS("; x = y ;", tokenizeAndStringify(";x=({y;});"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void simplifyOperatorName1() {
|
void simplifyOperatorName1() {
|
||||||
|
|
Loading…
Reference in New Issue