@@ -1018,8 +1018,8 @@ class TestTokenizer : public TestFixture {
10181018
10191019 void simplifyCasts4 () {
10201020 // ticket #970
1021- const char code[] = " if (a >= (unsigned)(b)) {}" ;
1022- const char expected[] = " if ( a >= ( unsigned int ) ( b ) ) { }" ;
1021+ const char code[] = " { if (a >= (unsigned)(b)) {} }" ;
1022+ const char expected[] = " { if ( a >= ( unsigned int ) ( b ) ) { } }" ;
10231023 ASSERT_EQUALS (expected, tokenizeAndStringify (code, true ));
10241024 }
10251025
@@ -1091,8 +1091,8 @@ class TestTokenizer : public TestFixture {
10911091 }
10921092
10931093 void simplifyCasts17 () { // #6110 - don't remove any parentheses in 'a(b)(c)'
1094- ASSERT_EQUALS (" if ( a ( b ) ( c ) >= 3 )" ,
1095- tokenizeAndStringify (" if (a(b)(c) >= 3)" , true ));
1094+ ASSERT_EQUALS (" { if ( a ( b ) ( c ) >= 3 ) { } } " ,
1095+ tokenizeAndStringify (" { if (a(b)(c) >= 3) { } } " , true ));
10961096 }
10971097
10981098 void simplifyAt () {
@@ -1151,8 +1151,8 @@ class TestTokenizer : public TestFixture {
11511151
11521152 ASSERT_THROW (ASSERT_EQUALS (" ; return f ( a [ b = c ] , asm ( \" ^{}\" ) ) ;" ,
11531153 tokenizeAndStringify (" ; return f(a[b=c],^{});" )), InternalError); // #7185
1154- ASSERT_EQUALS (" ; return f ( asm ( \" ^(void){somecode}\" ) ) ;" ,
1155- tokenizeAndStringify (" ; return f(^(void){somecode});" ));
1154+ ASSERT_EQUALS (" { return f ( asm ( \" ^(void){somecode}\" ) ) ; } " ,
1155+ tokenizeAndStringify (" { return f(^(void){somecode}); } " ));
11561156 ASSERT_THROW (ASSERT_EQUALS (" ; asm ( \" a?(b?(c,asm(\" ^{}\" )):0):^{}\" ) ;" ,
11571157 tokenizeAndStringify (" ;a?(b?(c,^{}):0):^{};" )), InternalError);
11581158 ASSERT_EQUALS (" template < typename T > "
@@ -1387,28 +1387,28 @@ class TestTokenizer : public TestFixture {
13871387 }
13881388
13891389 void whileAddBraces () {
1390- const char code[] = " ; while(a);" ;
1391- ASSERT_EQUALS (" ; while ( a ) { ; }" , tokenizeAndStringify (code, true ));
1390+ const char code[] = " { while(a);} " ;
1391+ ASSERT_EQUALS (" { while ( a ) { ; } }" , tokenizeAndStringify (code, true ));
13921392 }
13931393
13941394 void doWhileAddBraces () {
13951395 {
1396- const char code[] = " do ; while (0);" ;
1397- const char result[] = " do { ; } while ( 0 ) ;" ;
1396+ const char code[] = " { do ; while (0);} " ;
1397+ const char result[] = " { do { ; } while ( 0 ) ; } " ;
13981398
13991399 ASSERT_EQUALS (result, tokenizeAndStringify (code, false ));
14001400 }
14011401
14021402 {
1403- const char code[] = " UNKNOWN_MACRO ( do ) ; while ( a -- ) ;" ;
1404- const char result[] = " UNKNOWN_MACRO ( do ) ; while ( a -- ) { ; }" ;
1403+ const char code[] = " { UNKNOWN_MACRO ( do ) ; while ( a -- ) ; } " ;
1404+ const char result[] = " { UNKNOWN_MACRO ( do ) ; while ( a -- ) { ; } }" ;
14051405
14061406 ASSERT_EQUALS (result, tokenizeAndStringify (code, true ));
14071407 }
14081408
14091409 {
1410- const char code[] = " UNKNOWN_MACRO ( do , foo ) ; while ( a -- ) ;" ;
1411- const char result[] = " UNKNOWN_MACRO ( do , foo ) ; while ( a -- ) { ; }" ;
1410+ const char code[] = " { UNKNOWN_MACRO ( do , foo ) ; while ( a -- ) ; } " ;
1411+ const char result[] = " { UNKNOWN_MACRO ( do , foo ) ; while ( a -- ) { ; } }" ;
14121412
14131413 ASSERT_EQUALS (result, tokenizeAndStringify (code, true ));
14141414 }
@@ -3345,7 +3345,7 @@ class TestTokenizer : public TestFixture {
33453345 }
33463346
33473347 void removeParentheses14 () {
3348- ASSERT_EQUALS (" ; if ( ( i & 1 ) == 0 ) { ; } ; " , tokenizeAndStringify (" ; if ( (i & 1) == 0 ); ; " , false ));
3348+ ASSERT_EQUALS (" { if ( ( i & 1 ) == 0 ) { ; } } " , tokenizeAndStringify (" { if ( (i & 1) == 0 ); } " , false ));
33493349 }
33503350
33513351 void removeParentheses15 () {
@@ -4592,7 +4592,7 @@ class TestTokenizer : public TestFixture {
45924592
45934593 {
45944594 // if (a < b || c > d) { }
4595- const char code[] = " if (a < b || c > d);" ;
4595+ const char code[] = " { if (a < b || c > d); } " ;
45964596 errout.str (" " );
45974597 Tokenizer tokenizer (&settings0, this );
45984598 std::istringstream istr (code);
@@ -4628,7 +4628,7 @@ class TestTokenizer : public TestFixture {
46284628
46294629 {
46304630 // if (a < ... > d) { }
4631- const char code[] = " if (a < b || c == 3 || d > e);" ;
4631+ const char code[] = " { if (a < b || c == 3 || d > e); } " ;
46324632 errout.str (" " );
46334633 Tokenizer tokenizer (&settings0, this );
46344634 std::istringstream istr (code);
@@ -5512,8 +5512,8 @@ class TestTokenizer : public TestFixture {
55125512 }
55135513
55145514 {
5515- const char code[] = " return doSomething(X), 0;" ;
5516- ASSERT_EQUALS (" return doSomething ( X ) , 0 ;" , tokenizeAndStringify (code, false ));
5515+ const char code[] = " { return doSomething(X), 0; } " ;
5516+ ASSERT_EQUALS (" { return doSomething ( X ) , 0 ; } " , tokenizeAndStringify (code, false ));
55175517 ASSERT_EQUALS (" " , errout.str ());
55185518 }
55195519
@@ -5896,10 +5896,14 @@ class TestTokenizer : public TestFixture {
58965896 ASSERT_EQUALS (expected, tokenizeAndStringify (code, false ));
58975897
58985898 code = " using namespace std;\n "
5899- " try { }\n "
5900- " catch(std::exception &exception) { }" ;
5901- expected = " try { }\n "
5902- " catch ( std :: exception & exception ) { }" ;
5899+ " void f() {\n "
5900+ " try { }\n "
5901+ " catch(std::exception &exception) { }\n "
5902+ " }" ;
5903+ expected = " void f ( ) {\n "
5904+ " try { }\n "
5905+ " catch ( std :: exception & exception ) { }\n "
5906+ " }" ;
59035907 ASSERT_EQUALS (expected, tokenizeAndStringify (code, false ));
59045908
59055909 // #5773 (Don't prepend 'std ::' to function definitions)
@@ -6361,8 +6365,8 @@ class TestTokenizer : public TestFixture {
63616365 const char code1[] = " using a::operator=;" ;
63626366 ASSERT_EQUALS (" using a :: operator= ;" , tokenizeAndStringify (code1));
63636367
6364- const char code2[] = " return &Fred::operator!=;" ;
6365- ASSERT_EQUALS (" return & Fred :: operator!= ;" , tokenizeAndStringify (code2));
6368+ const char code2[] = " { return &Fred::operator!=; } " ;
6369+ ASSERT_EQUALS (" { return & Fred :: operator!= ; } " , tokenizeAndStringify (code2));
63666370 }
63676371
63686372 void simplifyOperatorName11 () { // #8889
@@ -8000,6 +8004,9 @@ class TestTokenizer : public TestFixture {
80008004 }
80018005
80028006 void findGarbageCode () { // Test Tokenizer::findGarbageCode()
8007+ // C++ try/catch in global scope
8008+ ASSERT_THROW_EQUALS (tokenizeAndStringify (" void f() try { }" ), InternalError, " syntax error: keyword 'try' is not allowed in global scope" );
8009+
80038010 // before if|for|while|switch
80048011 ASSERT_NO_THROW (tokenizeAndStringify (" void f() { do switch (a) {} while (1); }" ))
80058012 ASSERT_NO_THROW (tokenizeAndStringify (" void f() { label: switch (a) {} }" ));
0 commit comments