Commit Graph

235 Commits

Author SHA1 Message Date
PKEuS 8f79dc3ff8 Cleaned up includes and forward declarations in checkers:
- Removed definitely unnecessary forward declarations (e.g. "class Token"; token.h is already included by check.h, so a definition is unnecessary)
 - Removed unused includes
2014-05-24 12:50:03 +02:00
Alexander Mai 6fe2f8b01b #5782 Endless recursion in CheckClass::checkReturnPtrThis(). Break endless recursion by remembering the callstack (missing header file) 2014-05-11 12:27:43 +02:00
Daniel Marjamäki f31ec37d52 Fixed 2 Cppcheck warnings. Function can be static|const 2014-05-10 11:49:14 +02:00
Daniel Marjamäki 640431c569 Fixed #5611 (segfault when checking pcsc-cyberjack. either symboldatabase or checkMemset) 2014-03-30 17:38:07 +02:00
Alexander Mai 40ddcabab6 Fixed #4461 (Warn about memset/memcpy on class with references as members) 2014-03-15 18:22:29 +01:00
Daniel Marjamäki fd3a8a2a18 Update copyright 2014-02-15 07:45:39 +01:00
Daniel Marjamäki ff5f223a1d Fixed #5116 (false positive: memset on class (nested struct)) 2013-11-18 16:56:00 +01:00
Daniel Marjamäki 418a3d8399 spelling fix: desctructor => destructor 2013-09-09 06:14:41 +02:00
Ettl Martin 9ab6655d85 Fixed #5007 (Same include guard naming) 2013-09-04 20:59:49 +02:00
Lucas Manuel Rodriguez 006b8055e5 Fixed #4676 (Duplicated inherited member check) 2013-08-20 06:29:19 +02:00
PKEuS a9a5dc0354 Updated to AStyle 2.03, require this version 2013-08-07 16:27:37 +02:00
Frank Zingsheim 54e7c8f6a2 Implemented support for move constructors:
Adapt code to Function::eMoveConstructor
introduced in commit eb2962792f
2013-04-10 21:57:22 +02:00
Frank Zingsheim 5d55d40361 Fixed #4656 (New check: Detect pure virtual function calls) 2013-03-30 15:09:22 +01:00
PKEuS 096aae4439 New check: Warn about using malloc() for classes containing virtual methods, std::-objects or constructors 2013-03-01 06:07:20 -08:00
Reijo Tomperi 5d5f7085bf Updating year 2012 -> 2013 to .cpp and .h files and man page. 2013-01-01 18:29:08 +02:00
Robert Reif d2e8ab9c86 Fixed #4302 (Member variable not initialized in public delegate constructor) 2013-01-01 09:53:40 +01:00
Daniel Marjamäki de8e592d00 Class: Show inconclusive warnings about unknown types that are not initialized in copy constructors. Ticket: #3611 2012-09-20 19:16:26 +02:00
Daniel Marjamäki 3ff792560f Deactived bad message. Ticket #4154 2012-09-17 18:10:11 +02:00
Daniel Marjamäki 25befccb26 Revert "CheckClass::copyconstructors: Removed check. Because there is unfixed ticket #4154."
This reverts commit 066a1d48fe.
2012-09-17 17:59:35 +02:00
Daniel Marjamäki 066a1d48fe CheckClass::copyconstructors: Removed check. Because there is unfixed ticket #4154. 2012-09-17 16:18:27 +02:00
XhmikosR 6e4e3dfbfb lib: tabs to spaces, remove trailing spaces and extra empty lines at the end of files 2012-09-17 13:51:23 +02:00
PKEuS 5940d77a62 Disabled C++ specific checks and simplifications when checking a C or non-C++ file. 2012-09-10 19:02:32 +02:00
PKEuS 4e59e55229 Refactorization/Partial rewrite of CheckClass::copyconstructors():
- Reformatted check code and some test cases
- Fixed false positives #4148 (non-copyable/unknown base classes) and #4178 (copy ctor implementation not seen)
- Proper usage of STL containers
- Better support for initializer list
- Rephrased error messages
2012-09-10 13:31:30 +02:00
gaurav kaushik 9ad7dfd5fd Fixed #211 and #214 2012-09-05 12:58:09 +02: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 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
Ville Skyttä dce16a970d spelling fixes 2012-07-31 21:28:42 +02:00
PKEuS 4b80e91145 Implemented support for building cppcheck lib into a dll
Updated VS9 solution
New VS10 solution that builds cppcheck into a dll used by cli and testrunner.
Functional changes and advantages of new solution:
- Share code between testrunner and cli; ability to share code with gui as well (not yet implemented)
- Files of /lib are no longer compiled twice (should improve build time on single core machines)
- Added configuration for building with PCRE support
- Executables are build into /bin (/bin/debug in debug mode) folder (Should no longer require rebuild when switching between debug and release)
- Completely x64 compatible (contains also x64-debug configuration now)
2012-06-10 05:19:09 -07:00
Edoardo Prezioso 892c125ff8 Fixed: lib/checkclass.cpp:538:85: warning: declaration of ‘name’ shadows a member of 'this'. 2012-05-19 21:51:39 +02:00
PKEuS be7b104a8e Added missing checks to CheckClass::classInfo()
Replaced tokAt(1) with next() in checkother.cpp
2012-05-19 01:51:47 -07:00
PKEuS e77f348d82 New check: Suggest to use initialization list instead of assignment in constructor. (#489) 2012-05-18 07:54:58 -07:00
PKEuS 4bb2a1b27b Made some functions static or const according to cppcheck results 2012-05-17 01:33:24 -07:00
PKEuS 77df633904 Improved handling of function calls in const correctness check: Fixed #2702, #2698, #2729. 2012-05-16 11:57:12 -07:00
PKEuS af80344ab7 Refactorizations in checkclass.cpp:
- Removed local isVirtual implementation in checkclass.cpp, use Function::isImplicitlyVirtual instead
- Don't bailout when we see C++-style casts in checkConst
- Don't bailout for this pattern "any << member << any"
- Improved/Fixed some test cases (-> #1305)
2012-04-18 18:51:38 +02:00
PKEuS 425cbea6b1 Improvements in checkclass.cpp:
- Generalized CheckClass::noMemset:
-- Checking for all three mem...-functions for all patterns, generalized them so that we need less patterns
-- Use nextArgument() to jump over irrelevant arguments
- Replaced CheckClass::hasDeallocation by CheckClass::hasAllocation:
-- Reduced number of false negatives by returning also true whenever a member variable is allocated (also without previous deallocation)
-- Reduced code duplication
- Removed indendation counter and redundant variable in CheckClass::initializeVarList
2012-04-05 09:43:40 +02:00
PKEuS 6f164de609 Improved static string comparision check: Implemented #3214
Fixed false negative on argument count of fnprintf/snprintf when first variable argument is a string. (#3655)
Uncommented call of virtualDestructorError in getErrorMessages in checkclass.h
Refactorizations:
- Rearranged code in checkother.h to make ordering more consistent and to increase encapsulation of private data
- Replaced some single-token-patterns
2012-03-11 11:01:39 +01:00
PKEuS b1ff900aaa Some refactorizations 2012-02-18 23:43:51 +01:00
Reijo Tomperi 8cae17fda8 Update year to 2012 2012-01-01 01:05:37 +02:00
PKEuS dca03c3ce2 Remove unnecessary includes
Also add a unit test related to #3427
Also improve the description text in checkclass and remove unused variable.
2011-12-23 23:31:48 +02:00
PKEuS e5427fe487 Fixed #3048, further improvements to const correctness check. 2011-12-15 20:18:52 +01:00
PKEuS 00d6a0e877 refactorizations for CheckClass and for less false negatives related to derived classes 2011-12-14 21:11:40 +01:00
Edoardo Prezioso 4cad5d4df4 Workaround fixes to shut up some cppcheck '--inconclusive' whinings. 2011-12-13 00:24:34 +01:00
Daniel Marjamäki af7bf5c805 removed 'explicit constructors' check. see comments in pull request #51 for the reasons. 2011-11-02 17:12:46 +01:00
Daniel Marjamaki 132f0e12d1 CheckClass: Added classInfo about explicit checking 2011-10-30 09:54:02 +01:00
Richard Quirk 2ca932a3ae Add checks for explicit constructors
Single-argument constructors should be explicit. Constructors with
multiple arguments should not be marked explicit.
2011-10-29 18:24:16 +02:00
Daniel Marjamäki 6f8e42a5af changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
Robert Reif 540207533b fix #3008 (New check: Order of initialisation list) 2011-09-27 21:07:37 -04:00
Robert Reif a39444a40f change CheckClass::operatorEqToSelf to make better use of the symbol database 2011-03-31 19:53:35 -04:00
Robert Reif cf65a73c47 fix CheckClass::operatorEq to check return type more closely (to match check description) 2011-03-31 19:40:28 -04:00
Robert Reif 468a983db1 use the symbol database to look up base classes in CheckClass::noMemset check 2011-03-22 21:24:28 -04:00
Robert Reif 27f4b8b88b Convert CheckClass::noMemset to use the symbol database to lookup types. This adds better support for namespaces and nested classes. 2011-03-12 22:41:21 -05:00
Greg Hewgill 1ec6a642dc Revert "Check for memset on nested structs (ticket #1288)"
Turns out this fix is incomplete.

This reverts commit a084697410.
2011-03-10 20:19:31 +13:00
Greg Hewgill a084697410 Check for memset on nested structs (ticket #1288) 2011-03-09 23:02:49 +13:00
Greg Hewgill 70b4076111 refactor noMemset so it recursively checks parent classes for non-memset-compatible things 2011-03-09 21:29:30 +13:00
Robert Reif f596a6959e code cleanup and add more tests to CheckClass::noMemset() 2011-02-24 19:59:50 -05:00
Greg Hewgill be195a72c9 initialise Check::_name in constructor rather than relying on virtual Check::name() 2011-02-02 22:58:25 +13:00
Robert Reif 8631ee65a3 Fixed #2474 (false positive: Member variable 'A::m_SemVar' is not initialised in the constructor.) 2011-01-18 07:34:11 +01:00
Robert Reif 959e10cee5 Symbol database: renamed classes. ticket: #2468 2011-01-17 18:29:19 +01:00
Robert Reif bf9528558e Symbol database: pulled out classes into global scope. ticket: #2468 2011-01-17 07:21:59 +01:00
Robert Reif d341b42b0c Symbol database: increased constness. ticket: #2468 2011-01-16 18:13:54 +01:00
Robert Reif 66be74a5af Symbol database: Refactorings. Move check-specific code to check. Ticket: #2468 2011-01-16 16:37:11 +01:00
Robert Reif 0f6644e1ea Symbol database: Refactorings 2011-01-16 11:18:12 +01:00
Reijo Tomperi 226b605774 Change year 2010 -> 2011 in license texts. 2011-01-09 21:33:36 +02:00
Daniel Marjamäki 38e7209d26 Fixed #2373 (Using XML2 in --errorlist output) 2010-12-29 12:43:29 +01:00
Robert Reif b6acfa809b Symbol database: creates a single symbol database within Tokenizer on demand and changes all checks to use it 2010-12-07 07:08:49 +01:00
Robert Reif 1842a122da reuse symbol database in checkmemoryleak.cpp. ticket: #2219 2010-11-23 18:41:07 +01:00
Robert Reif 6a06970e1b CheckClass: Refactoring - organize each check so the check function comes first, any helper functions come second, and the message functions come last. Ticket: #2198 2010-11-14 06:50:33 +01:00
Robert Reif 894586f4dd Fixed #2198 (SymbolDatabase: separate SymbolDatabase from CheckClass) 2010-11-13 07:31:56 +01:00
Robert Reif 4ddf6f3b44 Symbol database: code cleanups 2010-11-10 16:52:52 +01:00
Robert Reif 36b03bdd3e Fixed #2179 (Segmentation fault in assignment operator) 2010-11-09 06:58:19 +01:00
Robert Reif 003f99da82 Symbol database: Fixed bug. Ticket: #2149 2010-11-04 06:58:37 +01:00
Robert Reif 0fe72839d8 Symbol Database: Better handling of namespaces. Ticket: #2149 2010-11-02 18:30:57 +01:00
Robert Reif a58094e827 Fixed #2089 (False negative: Function can be const (calling const function)) 2010-10-13 07:26:41 +02:00
Daniel Marjamäki a7cf68b9ef Check Class: Removed the 'operator= should not return a const reference' 2010-09-18 20:05:34 +02:00
Daniel Marjamäki 6ba5385878 CheckClass: the 'virtual destructor' checking is currently inactive 2010-09-18 19:03:15 +02:00
Robert Reif 6de1711515 Symbol database: reduce false negatives for 'uninitialized variable' when calling base class function. ticket: #1895 2010-09-12 22:40:51 +02:00
Robert Reif 69afc0a0db Symbol database: fixed false positive. ticket: #1895 2010-09-11 08:23:30 +02:00
Robert Reif 6d35396720 Symbol database: refactoring - differentiate between member data initialization and assignment and save the order of variable declarations. makes it possible to create some additional checks. ticket: #1895 2010-09-09 07:26:40 +02:00
Robert Reif cb318c21e3 Symbol database: adds support for inline functions returning function pointers and starts to convert privateFunctions over to the symbol database. Ticket: #1895 2010-09-02 07:40:20 +02:00
Daniel Marjamäki dcc02166c6 Fixed #1998 (VS compiler warning with current HEAD) 2010-08-30 21:45:26 +02:00
Robert Reif 96d73c189c Symbol database: better handling of operator functions. Ticket: #1895 2010-08-30 17:14:20 +02:00
Robert Reif b1bf201a8a Symbol database: Refactorings. Ticket: #1895 2010-08-28 11:23:23 +02:00
Daniel Marjamäki d45186d645 Added --debug-warnings that we can use to enable various debug warnings 2010-08-27 20:28:00 +02:00
Daniel Marjamäki cfa7b4906e Symbol database: bug fixes. Ticket: #1895 2010-08-18 22:42:04 +02:00
Robert Reif 86f1718b1c Symbol database: Fixed the error reporting so errors are shown in the gui. Ticket: #1895 2010-08-17 17:20:54 +02:00
Robert Reif 556ef9afcf Symbol database: report error when it is detected that a variable id is missing. Ticket: #1928 2010-08-15 08:03:27 +02:00
Robert Reif ab7bb876f9 Symbol database: Refactoring virtual destructors check. Ticket: #1895 2010-08-13 18:34:02 +02:00
Robert Reif b92644a30c Symbol database: refactoring variable handling. Ticket: #1895 2010-08-13 07:34:34 +02:00
Robert Reif c88aa242e8 Symbol database: better handling of 'friend'. ticket: #1895 2010-08-11 22:36:04 +02:00
Robert Reif 03c436a735 Symbol database: Refactoring 2010-08-10 18:01:33 +02:00
Robert Reif 12523bc745 Symbol database: Enhancements and fixes. Ticket: #1895 2010-08-09 17:50:26 +02:00
Daniel Marjamäki 262885f3e0 Fixed #1921 (false positive: the function '...' can be declared as const (inline friend)) 2010-08-07 16:08:44 +02:00
Daniel Marjamäki 54121a74ff Symbol Database: Don't use it when it is not needed 2010-08-07 12:41:11 +02:00
Daniel Marjamäki 9e7b087832 Refactoring: Made CheckClass members private 2010-08-07 12:26:42 +02:00
Daniel Marjamäki 6346e1aa90 Borland C++: Fixed compiler errors 2010-08-06 17:44:26 +02:00
Robert Reif 0bb07e6947 Create a symbol database 2010-07-26 16:46:37 +02:00
Robert Reif 4cf92992a8 Fixed #1883 (false positive: (style) The function 'A::SetPos' can be const) 2010-07-19 13:16:11 +02:00
Robert Reif 7842658cb4 Refactoring CheckClass::initializeVarList. Ticket #1811 2010-07-18 20:58:16 +02:00
Robert Reif 81a053aa90 Fixed #1311 (false negative: missing const not found in derived classes) 2010-07-18 10:18:41 +02:00
Robert Reif ad9d1375aa Fixed #1875 (CheckClass::getVarList: simplify function use) 2010-07-17 12:25:14 +02:00
Robert Reif fd352865ca CheckClass: Improvements and refactorings for constructors and variables checking 2010-07-14 19:00:52 +02:00
Daniel Marjamäki 6edb2e77b4 Refactoring: Removed Severity::possibleStyle 2010-05-16 14:43:42 +02:00
Zachary Blair c26e619b23 Fixed #855 (Refactoring: move conditions into checks) 2010-04-20 23:38:25 -07:00
Daniel Marjamäki c718a7c595 astyle: Update to astyle 1.24 2010-04-15 20:08:51 +02:00
Reijo Tomperi 35d2a27b9c Update copyright year in all source files 2010-04-13 22:23:17 +03:00
Daniel Marjamäki a7903c3385 dos2unix 2010-04-13 19:25:08 +02:00
firewave 8966888a92 Fixed some VS2008 warnings 2010-04-13 11:31:27 +02:00
Daniel Marjamäki e9b4ea44a2 Refactoring: Disable inconclusive checks. They can still be activated for debugging/testing purposes 2010-04-10 14:05:33 +02:00
Daniel Marjamäki f8367da1fd Refactoring: broke out copy/pasted code 2010-04-03 09:17:16 +02:00
Robert Reif 3507b06e0b Fixed #1563 (false positive: function can be const (assignment to static)) 2010-04-02 08:02:47 +02:00
Daniel Marjamäki 0cad22314e Reverted 'astyle fix'. Those changes are not in sync with my astyle configuration/setup. 2010-04-02 07:30:58 +02:00
Martin Ettl 193aa7d1d3 astyle fix 2010-04-02 02:21:53 +02:00
Robert Reif 2c5fb55c3b Fixed #1551 (false positive: The function 'A::vSet' can be const) 2010-04-01 16:59:35 +02:00
Robert Reif 2dc4222c9a Refactoring: Added CheckClass::isMemberFunc 2010-03-28 11:46:42 +02:00
Robert Reif 45865f54a8 Fixed #1525 (false negative: the function can be declared as const (member declared as mutable)) 2010-03-26 19:06:00 +01:00
Daniel Marjamäki e911d1f1df doxygen updates 2010-03-17 22:16:18 +01:00
Daniel Marjamäki 30d3418b11 doxygen: added more comments for CheckNullPointer and CheckUninitVar 2010-03-13 21:42:59 +01:00
Robert Reif f552ca5462 Fixed #1482 (Improve check const-function: function can be made const when assignment not to member variable (false negative)) 2010-03-12 18:30:20 +01:00
Robert Reif 09ab841789 Fixed #1486 (--errorlist shows two identical id values) 2010-03-10 07:47:01 +01:00
Daniel Marjamäki dbc235bd39 Function constness: I don't think it's necessary to show both definition and implementation location. I changed so only the location of the definition is shown. This fixes #1486. 2010-03-09 07:29:03 +01:00
Robert Reif 7c283d1321 Fixed #1321 (Improve check const-function: function that is not implemented inline can be made const) 2010-03-05 17:06:25 +01:00
Reijo Tomperi 7f2871d353 astyle fix 2010-02-14 21:46:40 +02:00
Daniel Marjamäki 9394816fcf Refactoring: Use std::string instead of const char * 2010-02-14 19:58:17 +01:00
Daniel Marjamäki 7ec27cb43b updated --doc output about new checks in 1.40 2010-01-27 19:25:48 +01:00
Daniel Marjamäki fb10396cb3 only run CheckClass::checkConst if style checking is on 2010-01-23 09:38:35 +01:00
Daniel Marjamäki 35c303943f Partial fix for #13 - detect simple cases of member functions that can be const 2010-01-23 09:19:22 +01:00
Daniel Marjamäki e9c8e1d8b1 doxygen and minor refactorings 2010-01-22 19:29:24 +01:00
Daniel Marjamäki 25bf50755e Reformatting the --doc output to work better in the wiki 2010-01-17 14:56:56 +01:00
Daniel Marjamäki 81ca6e9f98 Revert "minor tweak in Borland C++ project file"
This reverts commit ad06ee4f71.
2010-01-16 08:47:46 +01:00
Daniel Marjamäki ad06ee4f71 minor tweak in Borland C++ project file 2010-01-16 08:17:40 +01:00
Robert Reif bcafb30d0d Fixed #1211 (add struct support for constructor checks) 2010-01-02 17:29:55 +01:00
Robert Reif 12641e2d76 Fixed #1184 (improve test: operator =) 2009-12-31 13:44:03 +01:00
Daniel Marjamäki e7c0e4d482 Fixed #1093 (False positive: missing constructor) 2009-12-19 17:58:52 +01:00
Daniel Marjamäki c2a37c5d69 class checking: It's a 'possible style' error if a private constructor is not initializing a member variable 2009-12-06 18:35:32 +01:00
Daniel Marjamäki 09859c1019 refactoring the folder structure 2009-10-25 12:49:06 +01:00