Commit Graph

3855 Commits

Author SHA1 Message Date
PKEuS 45bad7d1b2 Refactorized tokenizer:
- Don't run setVarId() twice, keep old varId's while/after simplifyTokenList
-> Modified two test cases in testmemleak.cpp. I consider this to be safe. Feel free to investigate this.
- Fixed two nullpointer issues shown by cppcheck

Ran Astyle on teststl.cpp
2012-08-10 09:31:22 -07:00
Edoardo Prezioso 1d8240356b Really fixed #4024. Now the simplification won't be done on non-executive scopes. 2012-08-10 17:43:09 +02:00
PKEuS 70de691551 Fixed false positive #4032 2012-08-10 06:26:07 -07:00
Daniel Marjamäki 0254344df5 Tokenizer::simplifyEnum: Reverted refactorings/optimisations as there were regressions (#3949, #3950, #4025) 2012-08-10 14:06:24 +02:00
Daniel Marjamäki ca4ed5e0c3 ErrorLogger: Throw InternalError if given severity is not handled 2012-08-10 12:43:53 +02:00
PKEuS 355c1322d6 Small refactorizations in checkunusedvar.cpp:
- Token::Match handles nullpointers
- In chained assignments variables are only written (not read) when assigned
- Fixed crash #4033
2012-08-10 03:36:08 -07:00
Daniel Marjamäki 6ff1760c72 TemplateSimplifier: Improved handling of unknown inner template instantiation inside template instantiation (#3818) 2012-08-09 17:19:36 +02:00
Daniel Marjamäki 4ec12209dc TemplateSimplifier: Fixed wrong match when inner template parameters are wrongly counted (#3818) 2012-08-08 06:43:41 +02:00
Edoardo Prezioso d68d035e22 Tokenizer::simplifyFlowControl: separated the 'throw' case because it's not a reserved keyword in C, hence the function shouldn't simplify in C source files. 2012-08-07 19:38:51 +02:00
Daniel Marjamäki 735c0f5f6b Fixed #3963 (segmentation fault of cppcheck (invalid typedef code)) 2012-08-07 16:39:41 +02:00
Edoardo Prezioso 9e916eec66 Fixed #4024 (Tokenizer::simplifyFlowControl removes pieces of code inside a class if 'exit' is a member function). 2012-08-07 10:59:27 +02:00
Daniel Marjamäki 5ee7758a83 Fixed #4015 (segmentation fault of cppcheck (enum)) 2012-08-06 16:21:21 +02:00
Daniel Marjamäki 445fd4e6aa Fixed #4010 (error (cppcheckError): Internal error. Token::Match called with varid 0) 2012-08-05 17:11:39 +02:00
Daniel Marjamäki 25fd841b5d Tokenizer: removed redundant include 2012-08-05 16:06:20 +02:00
PKEuS 31129aad40 Refactorizations in checknullpointer.cpp:
- Removed CheckNullPointer::nullPointerAfterLoop(), improved CheckNullPointer::nullPointerByCheckAndDeRef() to cover tests
- Enhanced CheckNullPointer::nullPointerByDeRefAndChec() to check also 'else if' and 'while'
2012-08-05 02:07:38 -07:00
PKEuS 25ecd3ed71 Message refactorization: checknullpointer.cpp
Removed a duplicate test in checknullpointer.cpp
2012-08-05 01:38:48 -07:00
PKEuS 5e862351e9 Improvements in token.cpp:
- Shortened stringify output - 4 or more subsequent empty lines are abbreviated
- Fixed detection of comparision operators
- Make use of _type: Replaced three asserts by one
2012-08-02 11:36:54 -07:00
PKEuS 1b40668e04 Refactorizations:
- Made several functions (Check*::myName and others) because they don't touch depend on a specific instance. (cppcheck findings)
- Removed description of a check in CheckConst that has moved to CheckIO
2012-08-02 09:50:48 -07:00
PKEuS 452f95cea0 More robust template detection in clarifyCondition check based on Token::link. (#3818)
Create links between < and > only on non-C code.
AStyle fix
2012-08-02 04:03:01 -07:00
PKEuS 3b5dabdb14 Clarified errormessage of checkBoost 2012-08-02 02:40:08 -07:00
PKEuS c8e40773f1 Fixed cppcheck messagesa about functions that can be const/static:
- Made Tokenizer::getErrorMessages static - Avoids creation of unnecessary instance of Tokenizer
- Changed Tokenizer::removeExceptionSpecifications to common style for simplification functions. In contrast to the comment, this function doesn't call itself recursivly - fixed comment.
- Made Tokenizer::IsScopeNoReturn static.
2012-08-01 12:04:47 -07:00
PKEuS 88e4794d6e Refactorized CheckClass::checkConst:
- Added checking for functions that can be even declared static (#1971. Removed fix for #1563)
- Consistent usage of Function::TokenDef to avoid problems with scope identifiers
- Rewrote parsing of function body making it more generic
- Removed three redundant tests
2012-08-01 10:24:38 -07:00
Ettl Martin 98d608231d spelling fixes 2012-07-31 23:35:56 +02:00
Ville Skyttä dce16a970d spelling fixes 2012-07-31 21:28:42 +02:00
PKEuS cc1faad34a Removed bailouts in CheckClass::privateFunctions and CheckUnusedFunctions when checking code with templates (unnecessary after 2c10e9a6ca) 2012-07-29 08:05:54 -07:00
Daniel Marjamäki 2c10e9a6ca TemplateSimplifier: Removed unused function 2012-07-29 16:14:26 +02:00
Daniel Marjamäki 435340b463 Fixed #3814 (false positive: missing constructor) 2012-07-29 16:01:05 +02:00
PKEuS 4e2a86260f Really fixed #3941. 2012-07-29 06:50:05 -07:00
PKEuS 26a2379f9f Fixed false positive #3941. 2012-07-29 06:39:43 -07:00
PKEuS 1ec3c9f634 Fixed hang in libreoffice code (simplification of K&R style function declaration tried to simplify a function with parameters without name whose implementation contained "; {".
Test cases of this simplification only need basic simplifications done in Tokenizer::tokenize
2012-07-29 06:11:48 -07:00
PKEuS 6aa7f984cb Fixed false positives on FILE* arrays. (#3965) 2012-07-29 04:04:12 -07:00
PKEuS 2f95b97c66 Message refactorization: checkobsoletefunctions.h and checknonreentrantfunctions.h 2012-07-29 02:30:03 -07:00
Daniel Marjamäki 79c84029fb Preprocessor: Reduce simplifyVarMap usage to make Cppcheck a bit faster 2012-07-27 12:30:43 +02:00
Daniel Marjamäki 0ead18122d Fixed #3695 (False positive: memory leak (ptr?free(ptr):0)) 2012-07-27 12:25:20 +02:00
PKEuS 643f3890b4 Fixed #4003: tmpnam may be called with a nullpointer 2012-07-27 01:36:22 -07:00
Daniel Marjamäki 1a6f7ea9a0 Fixed #3998 (Tokenizer::simplifyEnum: wrong handling of expressions => crash) 2012-07-26 11:12:28 +02:00
PKEuS c11e8cdbfa Fixed false positive "Variable is not assigned a value" on class types 2012-07-25 00:34:27 -07:00
Daniel Marjamäki f82e5396c8 Fixed #3999 (Error incorrectly written in XML format) 2012-07-25 06:43:54 +02:00
PKEuS f5e5d59562 Refactorizations:
- Removed redundant newlines at the end of test cases
- Make use of STL algorithms instead of own implementations of std::replace and std::remove+string::erase
- Removed unused variable (found by cppcheck)
- Prefer postfix increment (found by cppcheck)
2012-07-24 12:21:05 -07:00
PKEuS bb940e4722 Implemented unused variable checking for standard types (#2851) 2012-07-24 11:47:29 -07:00
Daniel Marjamäki e6f761126c Fixed #2802 (False positive: ::free() is not recognised as free() to release buffers) 2012-07-24 09:28:08 +02:00
PKEuS 5c0cab238f Fixed useInitializationList false positives (#3988) 2012-07-23 08:16:47 -07:00
PKEuS ae6201d289 Fixed false positive "Parameter 'x' is passed as a value" for types like std::vector<T>::size_type (#3986) 2012-07-23 01:41:20 -07:00
Daniel Marjamäki a733c9b603 Fixed #3914 (false positive null pointer dereference, assignment in conditional) 2012-07-23 10:05:55 +02:00
Zhao Qifa 188d2e143d add a performance checker for const assignment 2012-07-22 09:17:00 +02:00
Ville Skyttä 7ab2f6a9fa Spelling fixes. 2012-07-21 18:11:20 +02:00
Daniel Marjamäki 9352e124fe Auto variables: Speedup my fix. Use the symbol database instead of Token::findmatch. 2012-07-19 16:42:56 +02:00
Daniel Marjamäki dc6c3228d7 Fixed #3834 (Preprocessor: -U doesn't work) 2012-07-18 20:57:00 +02:00
Daniel Marjamäki 17c27f51ff Fixed #3791 (False positive: returnTempReference) 2012-07-18 07:22:29 +02:00
Daniel Marjamäki a768b0e8b2 Fixed #3954 (Pointer reference memory leak false positive) 2012-07-17 16:28:34 +02:00