diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 4f698ded9..2dbdbd806 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -9084,17 +9084,15 @@ void Tokenizer::simplifyKeyword() tok->deleteThis(); } - - if (mSettings->standards.c >= Standards::C99) { + if (isC() && mSettings->standards.c >= Standards::C99) { while (tok->str() == "restrict") { tok->deleteThis(); } - - // simplify static keyword: - // void foo( int [ static 5 ] ); ==> void foo( int [ 5 ] ); - if (Token::Match(tok, "[ static %num%")) { - tok->deleteNext(); - } + } + // simplify static keyword: + // void foo( int [ static 5 ] ); ==> void foo( int [ 5 ] ); + if (Token::Match(tok, "[ static %num%")) { + tok->deleteNext(); } if (mSettings->standards.c >= Standards::C11) { diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index 252e31e60..39e6b475c 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -3280,6 +3280,7 @@ private: ASSERT_EQUALS("int * p ;", tok("int * restrict p;", "test.c")); ASSERT_EQUALS("int * * p ;", tok("int * restrict * p;", "test.c")); ASSERT_EQUALS("void foo ( float * a , float * b ) ;", tok("void foo(float * restrict a, float * restrict b);", "test.c")); + ASSERT_EQUALS("void foo ( int restrict ) ;", tok("void foo(int restrict);")); ASSERT_EQUALS("int * p ;", tok("typedef int * __restrict__ rint; rint p;", "test.c")); // don't remove struct members: