Fixed #1097 (Internal error: When macro is not expanded 'ABC(for (i=0;i<10;i++) ..);')
This commit is contained in:
parent
1002457b17
commit
bc808710a0
|
@ -2347,6 +2347,9 @@ void Tokenizer::simplifyIfAddBraces()
|
|||
{
|
||||
for (Token *tok = _tokens; tok; tok = tok ? tok->next() : NULL)
|
||||
{
|
||||
if (tok->previous() && !Token::Match(tok->previous(), ";|{|}|else|)|:"))
|
||||
continue;
|
||||
|
||||
if (Token::Match(tok, "if|for|while ("))
|
||||
{
|
||||
// don't add "{}" around ";" in "do {} while();" (#609)
|
||||
|
|
|
@ -41,6 +41,7 @@ private:
|
|||
{
|
||||
TEST_CASE(tokenize1);
|
||||
TEST_CASE(tokenize2);
|
||||
TEST_CASE(tokenize3);
|
||||
|
||||
TEST_CASE(minus);
|
||||
|
||||
|
@ -234,6 +235,22 @@ private:
|
|||
ASSERT_EQUALS("{ sizeof a , sizeof b }", tokenizeAndStringify(code.c_str()));
|
||||
}
|
||||
|
||||
void tokenize3()
|
||||
{
|
||||
errout.str("");
|
||||
const std::string code("void foo()\n"
|
||||
"{\n"
|
||||
" int i;\n"
|
||||
" ABC(for(i=0;i<10;i++) x());\n"
|
||||
"}");
|
||||
ASSERT_EQUALS("void foo ( )\n"
|
||||
"{\n"
|
||||
"int i ;\n"
|
||||
"ABC ( for ( i = 0 ; i < 10 ; i ++ ) x ( ) ) ;\n"
|
||||
"}", tokenizeAndStringify(code.c_str()));
|
||||
ASSERT_EQUALS("", errout.str());
|
||||
}
|
||||
|
||||
void minus()
|
||||
{
|
||||
ASSERT_EQUALS("i = -12", tokenizeAndStringify("i = -12"));
|
||||
|
|
Loading…
Reference in New Issue