diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 55582e7cb..c93589a7a 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -9177,7 +9177,7 @@ void Tokenizer::simplifyCallingConvention() void Tokenizer::simplifyDeclspec() { for (Token *tok = list.front(); tok; tok = tok->next()) { - while (Token::simpleMatch(tok, "__declspec (") && tok->next()->link() && tok->next()->link()->next()) { + while (Token::Match(tok, "__declspec|_declspec (") && tok->next()->link() && tok->next()->link()->next()) { if (Token::Match(tok->tokAt(2), "noreturn|nothrow")) { Token *tok1 = tok->next()->link()->next(); while (tok1 && !Token::Match(tok1, "%name%")) { diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index c44c649f6..d86f1f829 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -5068,6 +5068,7 @@ private: void removedeclspec() { ASSERT_EQUALS("a b", tokenizeAndStringify("a __declspec ( dllexport ) b")); + ASSERT_EQUALS("a b", tokenizeAndStringify("a _declspec ( dllexport ) b")); ASSERT_EQUALS("int a ;", tokenizeAndStringify("__declspec(thread) __declspec(align(32)) int a;")); ASSERT_EQUALS("int i ;", tokenizeAndStringify("__declspec(allocate(\"mycode\")) int i;")); ASSERT_EQUALS("struct IUnknown ;", tokenizeAndStringify("struct __declspec(uuid(\"00000000-0000-0000-c000-000000000046\")) IUnknown;"));