From 9df6088ddd4de3e31d7d2714d87e7b83d84bfbdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Mon, 30 Jan 2012 06:15:41 +0100 Subject: [PATCH] Revert "really fix #3527 (Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers)" This reverts commit a37031944e5d26f169e2026aec182b5aae7bc88d. I don't want this hard coding of macro names. Feel free to come with a more generic solution if you want. --- lib/checkmemoryleak.cpp | 2 ++ lib/tokenize.cpp | 29 ----------------------------- lib/tokenize.h | 5 ----- test/testtokenize.cpp | 21 --------------------- 4 files changed, 2 insertions(+), 55 deletions(-) diff --git a/lib/checkmemoryleak.cpp b/lib/checkmemoryleak.cpp index c8bb2fe34..b78e3ba5c 100644 --- a/lib/checkmemoryleak.cpp +++ b/lib/checkmemoryleak.cpp @@ -2559,6 +2559,8 @@ void CheckMemoryLeakInClass::checkPublicFunctions(const Scope *scope, const Toke return; const unsigned int varid = classtok->varId(); + if (varid == 0) + return; // Parse public functions.. // If they allocate member variables, they should also deallocate diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index e1b10884b..b62835725 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2108,9 +2108,6 @@ bool Tokenizer::tokenize(std::istream &code, // remove Borland stuff.. simplifyBorland(); - // remove wxWidgets stuff.. - simplifyWxWidgets(); - // Remove "volatile", "inline", "register", and "restrict" simplifyKeyword(); @@ -8991,32 +8988,6 @@ void Tokenizer::simplifyQtSignalsSlots() } } -void Tokenizer::simplifyWxWidgets() -{ - std::set macros; - - macros.insert("WXDLLIMPEXP_FWD_BASE"); - macros.insert("WXDLLIMPEXP_FWD_NET"); - macros.insert("WXDLLIMPEXP_FWD_CORE"); - macros.insert("WXDLLIMPEXP_FWD_ADV"); - macros.insert("WXDLLIMPEXP_FWD_QA"); - macros.insert("WXDLLIMPEXP_FWD_HTML"); - macros.insert("WXDLLIMPEXP_FWD_GL"); - macros.insert("WXDLLIMPEXP_FWD_XML"); - macros.insert("WXDLLIMPEXP_FWD_XRC"); - macros.insert("WXDLLIMPEXP_FWD_AUI"); - macros.insert("WXDLLIMPEXP_FWD_PROPGRID"); - macros.insert("WXDLLIMPEXP_FWD_RICHTEXT"); - macros.insert("WXDLLIMPEXP_FWD_MEDIA"); - macros.insert("WXDLLIMPEXP_FWD_STC"); - macros.insert("WXDLLIMPEXP_FWD_WEBVIEW"); - - for (Token *tok = _tokens; tok; tok = tok->next()) { - if (tok->next() && macros.find(tok->next()->str()) != macros.end()) - tok->deleteNext(); - } -} - const SymbolDatabase *Tokenizer::getSymbolDatabase() const { if (!_symbolDatabase) diff --git a/lib/tokenize.h b/lib/tokenize.h index 64fc7784d..83c39b52b 100644 --- a/lib/tokenize.h +++ b/lib/tokenize.h @@ -671,11 +671,6 @@ public: */ void simplifyQtSignalsSlots(); - /** - * Remove wxWidgets macros - */ - void simplifyWxWidgets(); - /** * Collapse operator name tokens into single token * operator = => operator= diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 558fc8c02..cda8111ae 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -355,8 +355,6 @@ private: TEST_CASE(Qt); - TEST_CASE(wxWidgets); // ticket #3527 - TEST_CASE(sql); TEST_CASE(simplifyLogicalOperators); @@ -5905,25 +5903,6 @@ private: ASSERT_EQUALS("", errout.str()); } - // ticket #3527 - void wxWidgets() { - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_BASE wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_NET wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_CORE wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_ADV wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_QA wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_HTML wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_GL wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_XML wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_XRC wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_AUI wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_PROPGRID wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_RICHTEXT wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_MEDIA wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_STC wxCheckBox;")); - ASSERT_EQUALS("class wxCheckBox ;", tokenizeAndStringify("class WXDLLIMPEXP_FWD_WEBVIEW wxCheckBox;")); - } - void sql() { // Oracle PRO*C extensions for inline SQL. Just replace the SQL with "asm()" to fix wrong error messages // ticket: #1959