Tokenizer: Remove redundant semi colons

This commit is contained in:
Daniel Marjamäki 2010-10-26 21:05:20 +02:00
parent 79583ee45d
commit a38b14d582
3 changed files with 136 additions and 137 deletions

View File

@ -2128,6 +2128,15 @@ bool Tokenizer::tokenize(std::istream &code,
_tokens->assignProgressValues();
// remove redundant semicolon:
for (Token *tok = _tokens; tok; tok = tok->next())
{
if (tok->str() == "(")
tok = tok->link();
while (Token::simpleMatch(tok, "; ;"))
tok->deleteNext();
}
return validate();
}
//---------------------------------------------------------------------------
@ -3945,6 +3954,16 @@ bool Tokenizer::simplifyTokenList()
_tokens->assignProgressValues();
// remove redundant semicolon:
for (Token *tok = _tokens; tok; tok = tok->next())
{
if (tok->str() == "(")
tok = tok->link();
while (Token::simpleMatch(tok, "; ;"))
tok->deleteNext();
}
return validate();
}
//---------------------------------------------------------------------------

View File

@ -289,6 +289,8 @@ private:
TEST_CASE(simplifyCallingConvention);
TEST_CASE(simplifyFunctorCall);
TEST_CASE(redundant_semicolon);
}
std::string tok(const char code[], bool simplify = true)
@ -414,7 +416,7 @@ private:
{
const char code1[] = "void f() { int a; bool use = true; if( use ) a=0; else if( bb ) a=1; else if( cc ) a=33; else { gg = 0; } int c=1; }";
const char code2[] = "void f ( ) { ; ; ; { ; } ; ; }";
const char code2[] = "void f ( ) { ; { ; } ; }";
ASSERT_EQUALS(code2, tok(code1));
}
@ -671,8 +673,8 @@ private:
" if (c>0) { c++; }\n"
" c++;\n"
"}\n";
TODO_ASSERT_EQUALS("void f ( int & c ) { c = 3 ; ; { ; } ; }", tok(code));
ASSERT_EQUALS("void f ( int & c ) { c = 1 ; ; { c ++ ; } c ++ ; }", tok(code));
TODO_ASSERT_EQUALS("void f ( int & c ) { c = 3 ; { ; } ; }", tok(code));
ASSERT_EQUALS("void f ( int & c ) { c = 1 ; { c ++ ; } c ++ ; }", tok(code));
}
@ -686,8 +688,8 @@ private:
" if (c>0) { ++c; }\n"
" ++c;\n"
"}\n";
TODO_ASSERT_EQUALS("void f ( int & c ) { c = 3 ; ; { ; } ; }", tok(code));
ASSERT_EQUALS("void f ( int & c ) { c = 1 ; ; { ++ c ; } ++ c ; }", tok(code));
TODO_ASSERT_EQUALS("void f ( int & c ) { c = 3 ; { ; } ; }", tok(code));
ASSERT_EQUALS("void f ( int & c ) { c = 1 ; { ++ c ; } ++ c ; }", tok(code));
}
{
@ -1457,7 +1459,7 @@ private:
const char code[] = "template <classname T> class Fred { T a; };\n"
"Fred<int> fred;";
const std::string expected("; ; "
const std::string expected("; "
"Fred<int> fred ; "
"class Fred<int> { int a ; }");
@ -1469,7 +1471,7 @@ private:
const char code[] = "template <classname T, int sz> class Fred { T data[sz]; };\n"
"Fred<float,4> fred;";
const std::string expected("; ; "
const std::string expected("; "
"Fred<float,4> fred ; "
"class Fred<float,4> { float data [ 4 ] ; }");
@ -1481,7 +1483,7 @@ private:
const char code[] = "template <classname T> class Fred { Fred(); };\n"
"Fred<float> fred;";
const std::string expected("; ; "
const std::string expected("; "
"Fred<float> fred ; "
"class Fred<float> { Fred<float> ( ) ; }");
@ -1494,8 +1496,7 @@ private:
"template <classname T> Fred<T>::Fred() { }\n"
"Fred<float> fred;";
const std::string expected("; ; "
"; "
const std::string expected("; "
"Fred<float> fred ; "
"class Fred<float> { } "
"Fred<float> :: Fred<float> ( ) { }");
@ -1509,7 +1510,7 @@ private:
"Fred<float> fred1;\n"
"Fred<float> fred2;";
const std::string expected("; ;"
const std::string expected(";"
" Fred<float> fred1 ;"
" Fred<float> fred2 ;"
" class Fred<float> { }");
@ -1529,7 +1530,7 @@ private:
"\n"
"};\n";
const std::string expected("; ;");
const std::string expected(";");
ASSERT_EQUALS(expected, sizeof_(code));
}
@ -1545,7 +1546,7 @@ private:
" return 0;\n"
"}\n";
const std::string expected("; ; "
const std::string expected("; "
"int main ( ) { "
"std :: vector < int > v ; "
"v . push_back ( 4 ) ; "
@ -1566,7 +1567,7 @@ private:
" }\n"
"};\n";
const std::string expected("; ;");
const std::string expected(";");
ASSERT_EQUALS(expected, sizeof_(code));
}
@ -1592,7 +1593,7 @@ private:
"\n"
"template<typename T> inline B<T> h() { return B<T>(); }\n";
ASSERT_EQUALS("; ; ; ; ; ; ;", sizeof_(code));
ASSERT_EQUALS(";", sizeof_(code));
ASSERT_EQUALS("class A { ; } ;", sizeof_("class A{ template<typename T> int foo(T d);};"));
}
@ -1613,7 +1614,7 @@ private:
"} ;\n";
// The expected result..
std::string expected("; ; void f ( ) { A<int> a ; } ; ; class A<int> { }");
std::string expected("; void f ( ) { A<int> a ; } ; class A<int> { }");
ASSERT_EQUALS(expected, sizeof_(code));
}
@ -1670,7 +1671,7 @@ private:
"}\n";
// The expected result..
const std::string expected("; ; "
const std::string expected("; "
"void f ( ) "
"{"
" A<12,12,11> a ; "
@ -1799,7 +1800,7 @@ private:
const char code[] = "template <class T> class foo { T a; };\n"
"foo<int> *f;";
const std::string expected("; ; "
const std::string expected("; "
"foo<int> * f ; "
"class foo<int> { int a ; }");
@ -1842,7 +1843,7 @@ private:
"A<int> a;\n";
// The expected result..
const std::string expected("; ; ; A<int> a ; "
const std::string expected("; A<int> a ; "
"class A<int> { public: ~ A<int> ( ) ; } "
"A<int> :: ~ A<int> ( ) { }");
ASSERT_EQUALS(expected, sizeof_(code));
@ -1854,7 +1855,7 @@ private:
const char code[] = "template <classname T> struct Fred { T a; };\n"
"Fred<int> fred;";
const std::string expected("; ; "
const std::string expected("; "
"Fred<int> fred ; "
"struct Fred<int> { int a ; }");
@ -1865,7 +1866,7 @@ private:
const char code[] = "template <classname T, int sz> struct Fred { T data[sz]; };\n"
"Fred<float,4> fred;";
const std::string expected("; ; "
const std::string expected("; "
"Fred<float,4> fred ; "
"struct Fred<float,4> { float data [ 4 ] ; }");
@ -1876,7 +1877,7 @@ private:
const char code[] = "template <classname T> struct Fred { Fred(); };\n"
"Fred<float> fred;";
const std::string expected("; ; "
const std::string expected("; "
"Fred<float> fred ; "
"struct Fred<float> { Fred<float> ( ) ; }");
@ -1888,8 +1889,7 @@ private:
"template <classname T> Fred<T>::Fred() { }\n"
"Fred<float> fred;";
const std::string expected("; ; "
"; "
const std::string expected("; "
"Fred<float> fred ; "
"struct Fred<float> { } "
"Fred<float> :: Fred<float> ( ) { }");
@ -1902,7 +1902,7 @@ private:
"Fred<float> fred1;\n"
"Fred<float> fred2;";
const std::string expected("; ;"
const std::string expected(";"
" Fred<float> fred1 ;"
" Fred<float> fred2 ;"
" struct Fred<float> { }");
@ -1931,7 +1931,7 @@ private:
"}\n";
// The expected result..
const std::string expected("; ; "
const std::string expected("; "
"void f ( ) "
"{"
" A<int,2> a1 ;"
@ -1955,7 +1955,7 @@ private:
"}\n";
// The expected result..
const std::string expected("; ; "
const std::string expected("; "
"void f ( ) "
"{"
" A<int,3,2> a1 ;"
@ -2453,7 +2453,7 @@ private:
" bool x = false;\n"
" int b = x ? 44 : 3;\n"
"}\n";
ASSERT_EQUALS("void f ( ) { ; ; ; ; }", tok(code));
ASSERT_EQUALS("void f ( ) { ; }", tok(code));
}
{
@ -2843,7 +2843,6 @@ private:
"; "
"void foo ( ) { } "
"} ; "
"; "
"int main ( ) "
"{ "
"A a ; "
@ -2866,7 +2865,6 @@ private:
const std::string expected =
"class A ; "
"; "
"class A "
"{ "
"public: "
@ -2893,7 +2891,6 @@ private:
const std::string expected =
"class A { } ; "
"; "
"wchar_t foo ( ) "
"{ "
"; "
@ -2919,7 +2916,6 @@ private:
"}\n";
const std::string expected =
"; "
"; "
"void f ( ) "
"{ "
@ -2998,13 +2994,6 @@ private:
"RCUINT trcui;";
const char expected[] =
"; "
"; "
"; "
"; "
"; "
"; "
"; "
"; "
"int ti ; "
"unsigned int tui ; "
@ -3033,9 +3022,9 @@ private:
const char expected[] =
"; "
"struct t { int a ; } ; ; "
"struct U { int a ; } ; ; "
"struct Unnamed0 { int a ; } ; ; "
"struct t { int a ; } ; "
"struct U { int a ; } ; "
"struct Unnamed0 { int a ; } ; "
"struct s s ; "
"struct s * ps ; "
"struct t t ; "
@ -3061,9 +3050,9 @@ private:
const char expected[] =
"; "
"union t { int a ; float b ; } ; ; "
"union U { int a ; float b ; } ; ; "
"union Unnamed1 { int a ; float b ; } ; ; "
"union t { int a ; float b ; } ; "
"union U { int a ; float b ; } ; "
"union Unnamed1 { int a ; float b ; } ; "
"union s s ; "
"union s * ps ; "
"union t t ; "
@ -3082,8 +3071,7 @@ private:
"XYZ e2;";
const char expected[] =
"; ; "
"; ; "
"; "
"int e1 ; "
"int e2 ;";
@ -3102,9 +3090,6 @@ private:
"IntListIterator iter;";
const char expected[] =
"; "
"; "
"; "
"; "
"vector < int > v1 ; "
"std :: vector < int > v2 ; "
@ -3247,7 +3232,7 @@ private:
"C c;";
const char expected[] =
"struct A { } ; ; "
"struct A { } ; "
"struct A a ; "
"struct A * b ; "
"struct A * * c ;";
@ -3261,7 +3246,7 @@ private:
"B b;";
const char expected[] =
"struct A { } ; ; "
"struct A { } ; "
"struct A a ; "
"struct A * * * * * * * * * b ;";
@ -3275,7 +3260,7 @@ private:
"C c;";
const char expected[] =
"struct Unnamed2 { } ; ; "
"struct Unnamed2 { } ; "
"struct Unnamed2 * * * * * * * * * * a ; "
"struct Unnamed2 * b ; "
"struct Unnamed2 c ;";
@ -3573,9 +3558,6 @@ private:
"int_array ia;";
const char expected[] =
"; "
"; "
"; "
"; "
"int a [ ice_or < is_int < int > :: value , is_int < UDT > :: value > :: value ? 1 : - 1 ] ; "
"int a1 [ N ] ; "
@ -3596,8 +3578,6 @@ private:
"int_list_array ila;";
const char expected[] =
"; "
"; "
"; "
":: std :: list < int > il ; "
":: std :: list < int > :: iterator ili ; "
@ -3665,8 +3645,6 @@ private:
"LPCSTR ccp;";
const char expected[] =
"; "
"; "
"; "
"char c ; "
"char * cp ; "
@ -3748,7 +3726,6 @@ private:
"}";
const char expected[] =
"class X { } ; "
"; "
"int main ( ) "
"{ "
"X ( * * Foo ) ( const X & ) = new X ( * ) ( const X & ) [ 2 ] ; "
@ -3830,7 +3807,7 @@ private:
"float fun2 ( float a ) { float A ; A = a ++ ; return A ; } "
"float fun3 ( int a ) "
"{ "
"struct A { int a ; } ; ; "
"struct A { int a ; } ; "
"struct A s ; s . a = a ; "
"return s . a ; "
"} "
@ -3911,7 +3888,7 @@ private:
{
const char code[] = "typedef int A;\n"
"template <const A, volatile A>::value;";
const char expected[] = "; ;";
const char expected[] = ";";
ASSERT_EQUALS(expected, tok(code, false));
checkSimplifyTypedef(code);
@ -3923,7 +3900,7 @@ private:
const char code[] = "typedef int A;\n"
"typedef int B;\n"
"template <class A, class B> class C { };";
const char expected[] = "; ; ; ;";
const char expected[] = ";";
ASSERT_EQUALS(expected, tok(code, false));
checkSimplifyTypedef(code);
@ -4123,7 +4100,7 @@ private:
"};\n";
// The expected result..
const std::string expected("struct foo { } ; ; "
const std::string expected("struct foo { } ; "
"struct MyA : public foo "
"{ "
"} ;");
@ -4140,7 +4117,7 @@ private:
"};\n";
// The expected result..
const std::string expected("class foo { } ; ; "
const std::string expected("class foo { } ; "
"class MyA : public foo "
"{ "
"} ;");
@ -4169,7 +4146,7 @@ private:
"AP ap;\n";
// The expected result..
const std::string expected("struct A { int a ; } ; ; "
const std::string expected("struct A { int a ; } ; "
"const struct A * ap ;");
ASSERT_EQUALS(expected, sizeof_(code));
}
@ -4206,7 +4183,7 @@ private:
"}\n";
// The expected result..
const std::string expected("struct string { } ; ; "
const std::string expected("struct string { } ; "
"void foo ( LIST * module_name ) "
"{ "
"bar ( module_name ? module_name . string : 0 ) ; "
@ -4244,7 +4221,7 @@ private:
"type4 t4;";
// The expected result..
const std::string expected("; ; ; ; "
const std::string expected("; "
"char ( * t1 ) [ 10 ] ; "
"char ( * ( * tp1 ) [ 2 ] ) [ 10 ] ; "
"char ( & t2 ) [ 10 ] ; "
@ -4260,7 +4237,7 @@ private:
"type1 t1 = &A::i;";
// The expected result..
const std::string expected("class A { public: int i ; } ; ; "
const std::string expected("class A { public: int i ; } ; "
"const char ( A :: * t1 ) = & A :: i ;");
ASSERT_EQUALS(expected, sizeof_(code));
}
@ -4345,7 +4322,7 @@ private:
"_Iterator v3;\n";
// The expected result..
const std::string expected("; ; ; "
const std::string expected("; "
"long * v1 ; "
"void * v2 [ 2 ] ; "
"int * * v3 ;");
@ -4433,7 +4410,7 @@ private:
" typedef void (SomeTemplateClass<DISPATCHER>::*MessageDispatcherFunc)(SerialInputMessage&);\n"
"};\n";
// The expected result..
const std::string expected("; ;");
const std::string expected(";");
ASSERT_EQUALS(expected, sizeof_(code));
// Check for output..
@ -4451,7 +4428,7 @@ private:
" localEntitiyAddFunc_t f;\n"
"}\n";
// The expected result..
const std::string expected("; ; ; void f ( ) { int b ; int * f ; }");
const std::string expected("; void f ( ) { int b ; int * f ; }");
ASSERT_EQUALS(expected, sizeof_(code, false));
// Check for output..
@ -4852,7 +4829,7 @@ private:
"func7 f7;";
// The expected result..
const std::string expected("; ; ; ; ; ; ; "
const std::string expected("; "
"C f1 ( ) ; "
"C * f2 ; " // this gets simplified to a regular pointer
"C ( & f3 ) ( ) ; "
@ -4884,7 +4861,7 @@ private:
// The expected result..
// C const -> const C
const std::string expected("; ; ; ; ; ; ; "
const std::string expected("; "
"const C f1 ( ) ; "
"const C * f2 ; " // this gets simplified to a regular pointer
"const C ( & f3 ) ( ) ; "
@ -4915,7 +4892,7 @@ private:
"func7 f7;";
// The expected result..
const std::string expected("; ; ; ; ; ; ; "
const std::string expected("; "
"const C f1 ( ) ; "
"const C * f2 ; " // this gets simplified to a regular pointer
"const C ( & f3 ) ( ) ; "
@ -4946,7 +4923,7 @@ private:
"func7 f7;";
// The expected result..
const std::string expected("; ; ; ; ; ; ; "
const std::string expected("; "
"C * f1 ( ) ; "
"C * * f2 ; " // this gets simplified to a regular pointer
"C * ( & f3 ) ( ) ; "
@ -4977,7 +4954,7 @@ private:
"func7 f7;";
// The expected result..
const std::string expected("; ; ; ; ; ; ; "
const std::string expected("; "
"const C * f1 ( ) ; "
"const C * * f2 ; " // this gets simplified to a regular pointer
"const C * ( & f3 ) ( ) ; "
@ -5009,7 +4986,7 @@ private:
// The expected result..
// C const -> const C
const std::string expected("; ; ; ; ; ; ; "
const std::string expected("; "
"const C * f1 ( ) ; "
"const C * * f2 ; " // this gets simplified to a regular pointer
"const C * ( & f3 ) ( ) ; "
@ -5034,7 +5011,7 @@ private:
"type3 t3;";
// The expected result..
const std::string expected("; ; ; "
const std::string expected("; "
"int ( * ( * t1 ) ( bool ) ) ( int , int ) ; "
"int ( * t2 ( bool ) ) ( int , int ) ; "
"int ( * t3 ( bool ) ) ( int , int ) ;");
@ -5072,7 +5049,7 @@ private:
"type12 t12;";
// The expected result..
const std::string expected("; ; ; ; ; ; ; ; ; ; ; ; "
const std::string expected("; "
"int * t1 ; " // simplified to regular pointer
"int ( * const t2 ) ( float ) ; "
"int * t3 ; " // volatile removed, gets simplified to regular pointer
@ -5108,7 +5085,7 @@ private:
"}\n"
"}";
ASSERT_EQUALS("void f ( ) { ; ; { g ( ) ; } }", tok(code));
ASSERT_EQUALS("void f ( ) { ; { g ( ) ; } }", tok(code));
}
{
@ -5121,7 +5098,7 @@ private:
"}\n"
"}";
ASSERT_EQUALS("void f ( ) { ; ; }", tok(code));
ASSERT_EQUALS("void f ( ) { ; }", tok(code));
}
{
@ -5134,7 +5111,7 @@ private:
"}\n"
"}";
ASSERT_EQUALS("void f ( ) { ; ; }", tok(code));
ASSERT_EQUALS("void f ( ) { ; }", tok(code));
}
{
@ -5147,7 +5124,7 @@ private:
"}\n"
"}";
ASSERT_EQUALS("void f ( ) { ; ; { g ( ) ; } }", tok(code));
ASSERT_EQUALS("void f ( ) { ; { g ( ) ; } }", tok(code));
}
{
@ -5201,7 +5178,6 @@ private:
const char expected[] = "void f ( ) "
"{ "
"char buf [ 100 ] ; "
"; ; "
"free ( buf ) ; "
"}";
@ -5253,7 +5229,6 @@ private:
const char expected[] = "int * foo ( ) "
"{ "
"int a [ 10 ] ; "
"; ; "
"return a ; "
"}";
@ -5284,7 +5259,6 @@ private:
const char expected[] = "void f ( ) "
"{ "
"int i ; "
"; ; "
"return i ; "
"}";
ASSERT_EQUALS(expected, tok(code));
@ -5353,7 +5327,7 @@ private:
void while0()
{
ASSERT_EQUALS("; x = 1 ; ;", tok("; do { x = 1 ; } while (0);"));
ASSERT_EQUALS("; x = 1 ;", tok("; do { x = 1 ; } while (0);"));
ASSERT_EQUALS("; do { continue ; } while ( false ) ;", tok("; do { continue ; } while (0);"));
ASSERT_EQUALS("; do { break ; } while ( false ) ;", tok("; do { break; } while (0);"));
}
@ -5703,23 +5677,23 @@ private:
// ticket #1005 - int *p(0); => int *p = 0;
{
const char code[] = "void foo() { int *p(0); }";
ASSERT_EQUALS("void foo ( ) { ; ; }", tok(code));
ASSERT_EQUALS("void foo ( ) { ; }", tok(code));
}
{
const char code[] = "void foo() { int p(0); }";
ASSERT_EQUALS("void foo ( ) { ; ; }", tok(code));
ASSERT_EQUALS("void foo ( ) { ; }", tok(code));
}
{
const char code[] = "void a() { foo *p(0); }";
ASSERT_EQUALS("void a ( ) { ; ; }", tok(code));
ASSERT_EQUALS("void a ( ) { ; }", tok(code));
}
}
void simplifyReference()
{
ASSERT_EQUALS("void f ( ) { int a ; ; a ++ ; }",
ASSERT_EQUALS("void f ( ) { int a ; a ++ ; }",
tok("void f() { int a; int &b(a); b++; }"));
ASSERT_EQUALS("void f ( ) { int a ; a ++ ; }",
tok("void f() { int a; int &b = a; b++; }"));
@ -5890,7 +5864,7 @@ private:
{
const char code[] = "struct { int x; };";
const char expected[] = "int x ; ;";
const char expected[] = "int x ;";
ASSERT_EQUALS(expected, tok(code, false));
}
@ -5951,6 +5925,12 @@ private:
{
ASSERT_EQUALS("IncrementFunctor ( ) ( a ) ;", tok("IncrementFunctor()(a);", true));
}
void redundant_semicolon()
{
ASSERT_EQUALS("void f ( ) { ; }", tok("void f() { ; }", false));
ASSERT_EQUALS("void f ( ) { ; }", tok("void f() { do { ; } while (0); }", true));
}
};
REGISTER_TEST(TestSimplifyTokens)

View File

@ -704,7 +704,7 @@ private:
"{\n"
" char *str = malloc(10);\n"
" if (somecondition)\n"
" for ( ; ; )\n"
" for ( ; )\n"
" { }\n"
" return str;\n"
"}\n";
@ -712,7 +712,7 @@ private:
"{\n"
"char * str ; str = malloc ( 10 ) ;\n"
"if ( somecondition ) {\n"
"for ( ; ; )\n"
"for ( ; )\n"
"{ } }\n"
"return str ;\n"
"}", tokenizeAndStringify(code, true));
@ -1513,8 +1513,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 + v@2 ;\n"
"6: }\n";
ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1530,8 +1530,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 - v@2 ;\n"
"6: }\n";
ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1547,8 +1547,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 * v@2 ;\n"
"6: }\n";
ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1564,8 +1564,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 / v@2 ;\n"
"6: }\n";
ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1581,8 +1581,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 & v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1598,8 +1598,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 | v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1615,8 +1615,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 ^ v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1632,8 +1632,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 % v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1649,8 +1649,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 >> v@2 ;\n"
"6: }\n";
ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1666,8 +1666,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: int foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4:\n"
"5: return u@1 << v@2 ;\n"
"6: }\n";
ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1683,8 +1683,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 == v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1700,8 +1700,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 != v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1717,8 +1717,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 > v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1734,8 +1734,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 >= v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1751,8 +1751,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 < v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1768,8 +1768,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 <= v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1785,8 +1785,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 && v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1802,8 +1802,8 @@ private:
const char expected[] = "\n\n##file 0\n"
"1: bool foo ( int u@1 , int v@2 )\n"
"2: {\n"
"3: ; ;\n"
"4: ; ;\n"
"3: ;\n"
"4: ;\n"
"5: return u@1 || v@2 ;\n"
"6: }\n";
TODO_ASSERT_EQUALS(expected, tokenizeDebugListing(code, true));
@ -1963,7 +1963,7 @@ private:
const std::string expected("\n\n##file 0\n"
"1: void f ( )\n"
"2: {\n"
"3: ; ;\n"
"3: ;\n"
"4: }\n");
ASSERT_EQUALS(expected, actual);
@ -2138,7 +2138,7 @@ private:
const std::string expected("\n\n##file 0\n"
"1: void f ( )\n"
"2: {\n"
"3: int a@1 ; ;\n"
"3: int a@1 ;\n"
"4: a@1 = a@1 ;\n"
"5: }\n");
@ -3323,7 +3323,7 @@ private:
std::ostringstream ostr;
for (const Token *tok = tokenizer.tokens(); tok; tok = tok->next())
ostr << " " << tok->str();
ASSERT_EQUALS(" void f ( ) { const int a = 45 ; { ; ; } } void g ( ) { ; ; }", ostr.str());
ASSERT_EQUALS(" void f ( ) { const int a = 45 ; { ; } } void g ( ) { ; }", ostr.str());
}
void simplify_constants2()
@ -4051,8 +4051,8 @@ private:
void removeRedundantAssignment()
{
ASSERT_EQUALS("void f ( ) { ; int * q ; ; }", tokenizeAndStringify("void f() { int *p, *q; p = q; }", true));
ASSERT_EQUALS("void f ( ) { ; ; int * q ; ; }", tokenizeAndStringify("void f() { int *p = 0, *q; p = q; }", true));
ASSERT_EQUALS("void f ( ) { ; int * q ; }", tokenizeAndStringify("void f() { int *p, *q; p = q; }", true));
ASSERT_EQUALS("void f ( ) { ; int * q ; }", tokenizeAndStringify("void f() { int *p = 0, *q; p = q; }", true));
}
void removedeclspec()