Improved handling of syntax errors in Tokenizer::simplifyAddBracesPair.
This commit is contained in:
parent
6b2bab535b
commit
e2deb59f8a
|
@ -4119,6 +4119,8 @@ Token *Tokenizer::simplifyAddBracesPair(Token *tok, bool commandWithCondition)
|
||||||
tokBracesEnd=tokAfterCondition->link();
|
tokBracesEnd=tokAfterCondition->link();
|
||||||
} else {
|
} else {
|
||||||
Token * tokEnd = simplifyAddBracesToCommand(tokAfterCondition);
|
Token * tokEnd = simplifyAddBracesToCommand(tokAfterCondition);
|
||||||
|
if (!tokEnd) // Ticket #4887
|
||||||
|
return tok;
|
||||||
if (tokEnd->str()!="}") {
|
if (tokEnd->str()!="}") {
|
||||||
// Token does not end with brace
|
// Token does not end with brace
|
||||||
// Look for ; to add own closing brace after it
|
// Look for ; to add own closing brace after it
|
||||||
|
|
|
@ -72,6 +72,7 @@ private:
|
||||||
TEST_CASE(garbageCode1);
|
TEST_CASE(garbageCode1);
|
||||||
TEST_CASE(garbageCode2); // #4300
|
TEST_CASE(garbageCode2); // #4300
|
||||||
TEST_CASE(garbageCode3); // #4869
|
TEST_CASE(garbageCode3); // #4869
|
||||||
|
TEST_CASE(garbageCode4); // #4887
|
||||||
|
|
||||||
TEST_CASE(simplifyFileAndLineMacro); // tokenize "return - __LINE__;"
|
TEST_CASE(simplifyFileAndLineMacro); // tokenize "return - __LINE__;"
|
||||||
|
|
||||||
|
@ -912,6 +913,10 @@ private:
|
||||||
tokenizeAndStringify("enum { D = 2 s ; struct y { x } ; } { s.a = C ; s.b = D ; }");
|
tokenizeAndStringify("enum { D = 2 s ; struct y { x } ; } { s.a = C ; s.b = D ; }");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void garbageCode4() { // #4887
|
||||||
|
tokenizeAndStringify("void f ( ) { = a ; if ( 1 ) if = ( 0 ) ; }");
|
||||||
|
}
|
||||||
|
|
||||||
void simplifyFileAndLineMacro() { // tokenize 'return - __LINE__' correctly
|
void simplifyFileAndLineMacro() { // tokenize 'return - __LINE__' correctly
|
||||||
ASSERT_EQUALS("return -1 ;", tokenizeAndStringify("return - __LINE__;"));
|
ASSERT_EQUALS("return -1 ;", tokenizeAndStringify("return - __LINE__;"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue