Commit Graph

5031 Commits

Author SHA1 Message Date
PKEuS dc439f65f8 Added some unit tests to improve test coverage in cmdlineparser 2013-08-15 11:09:40 +02:00
Daniel Marjamäki f95b29db06 Improved handling of the __FILE__ macro 2013-08-14 06:36:03 +02:00
Daniel Marjamäki fd26bad6fa AssignIf: Improved handling of function calls 2013-08-13 14:08:54 +02:00
Daniel Marjamäki c58c9d80e1 astyle formatting 2013-08-13 06:36:03 +02:00
Daniel Marjamäki ff71c94f6e Fixed #4949 (define symbol used in code => 'Analysis failed' message is written.) 2013-08-12 18:12:49 +02:00
Robert Reif d6ce072dc9 Fixed #4950 (Tokenizer: order of int modifiers) 2013-08-12 06:23:01 +02:00
Robert Reif cd3044c808 Fixed #4952 (SymbolDatabase: unknown types in log file) 2013-08-12 06:21:03 +02:00
Simon Martin 40887ca99c Ticket #4703: Trim macro parameters. 2013-08-11 09:41:03 +02:00
Robert Reif 56d8073d0f Fixed #4902 (printf and scanf format checks don't support microsoft %I, %I32 and %I64 extensions) 2013-08-10 12:37:31 +02:00
Robert Reif 5aa79198e6 Fixed #4948 (check printf %l and %ll arguments for long and long long) 2013-08-10 12:33:55 +02:00
Daniel Marjamäki 64733d9e63 astyle formatting 2013-08-10 12:32:59 +02:00
Daniel Marjamäki 3ac21ab1db Merge pull request #158 from simartin/ticket_4764
Ticket #4764: Handle template instantiations with only default parameters
2013-08-10 03:22:41 -07:00
Simon Martin ad33d95ec1 Ticket #4764: properly handle template instantiations with only default parameters. 2013-08-10 12:00:16 +02:00
Robert Reif b940d0adc6 Fixed #4947 (Doesn't allow any ordering of int modifiers) 2013-08-09 23:13:04 +02:00
Daniel Marjamäki 3032dbabce astyle formatting 2013-08-08 15:50:45 +02:00
PKEuS 298a33211f Use static CmdLineParser instance where possible in testcmdlineparser.cpp, fixed wrong unit test. 2013-08-07 18:24:18 +02:00
PKEuS 36dba8373b Reuse constant objects in testpathmatch.cpp, small simplification in testsuppressions.cpp and testthreadexecutor.cpp 2013-08-07 17:55:31 +02:00
PKEuS a65e08b648 Simplified code in testerrorlogger by reusing constant object. 2013-08-07 17:02:35 +02:00
PKEuS 758d68519d Use TinyXML to write XML files 2013-08-07 16:30:55 +02:00
PKEuS a9a5dc0354 Updated to AStyle 2.03, require this version 2013-08-07 16:27:37 +02:00
PKEuS dd82817752 Fixed #4943 and simplified CheckOther::checkCommaSeparatedReturn() 2013-08-06 11:27:09 -07:00
PKEuS 5e3ccda408 Added support for noreturn functions from library to CheckOther::checkUnreachableCode() 2013-08-06 02:11:59 -07:00
Simon Martin c9884c30a1 Fix ticket #4922 (segmentation fault upon invalid code). 2013-08-05 20:28:22 +02:00
Daniel Marjamäki 2a78db4c06 Refactoring Token::findClosingBracket. 2013-07-31 10:30:20 +02:00
Daniel Marjamäki 6c05f78a8f Reverted experimental changes for handling of lambda functions (#4919). 2013-07-31 09:58:31 +02:00
Daniel Marjamäki 807204e580 Fixed #4237 (False positive: (error) Memory Leak: data (references and pointer aliases)) 2013-07-30 11:30:14 +02:00
Daniel Marjamäki 1bebf1fd7e AssignIf: added todo test case (pass variable by value to function) 2013-07-29 12:27:57 +02:00
Alexander Mai 39ba0d36c1 TestRunner: added test case for assignment simplification in do-while (#4881). 2013-07-29 12:10:11 +02:00
Daniel Marjamäki f59164302d TestAssignIf: improved code coverage 2013-07-29 11:43:08 +02:00
Alexander Mai 3e9f6daa00 Added test cases for #4801 (Cppcheck fails to parse Posix (crash in CheckOther::checkPipeParameterSize())) 2013-07-29 10:57:41 +02:00
Daniel Marjamäki 9ff204f8bc astyle formatting, use isEnabled("warning") instead of isEnabled("style") 2013-07-28 16:13:16 +02:00
Simon Martin d01e3fa17a Handle parameter positions format strings (POSIX extensions). 2013-07-28 15:00:28 +02:00
Daniel Marjamäki 239a0819e3 astyle formatting 2013-07-28 13:17:46 +02:00
Daniel Marjamäki 7fd12ee2b5 Merge pull request #153 from simartin/ticket_4930
Fixed #4930 ((error) Internal Error: Division by zero)
2013-07-28 04:17:03 -07:00
Daniel Marjamäki 2a1af1acda CheckUninitVar: Assertion for '} while (' after 'do {..' in debug builds. Bail out in release builds to avoid segfaults. 2013-07-28 12:41:38 +02:00
Simon Martin eb3bf571be Avoid divisions by zero when simplifying numeric calculations. 2013-07-28 12:32:18 +02:00
Lucas Manuel Rodriguez 09f4d3732a Fixed #4911 (segfault, assignment in do ... while, 1.61dev) 2013-07-28 11:58:14 +02:00
Daniel Marjamäki 36ef34a2cf astyle formatting 2013-07-28 11:53:49 +02:00
Daniel Marjamäki 862eb351d5 Merge pull request #152 from simartin/ticket_4914
Fixed #4914 (memory freed twice, when in do {} while being shortcircuited via continue)
2013-07-28 01:43:45 -07:00
Alexander Mai 40fa474a5b Fixed #4927 (Segfault in CheckOther::checkCommaSeparatedReturn() on invalid code) 2013-07-28 10:39:58 +02:00
Simon Martin 470a9a6c71 Take into account break and continue statements in CheckLeakAutoVar. 2013-07-28 10:26:46 +02:00
Daniel Marjamäki 44333f316a Added terminate() handling to get quicker response when the user wants to terminate 2013-07-24 13:06:59 +02:00
Daniel Marjamäki 178467a578 astyle formatting 2013-07-24 11:20:28 +02:00
Carlo Marcelo Arenas Belon aa0560fe3b Fixed #4925 (False positive: checkother style)
When using a variable that is assigned a function pointer checks for
pointers are triggered which would complain if used in arithmetic
comparisions (eventhough it will be valid code if the function returns
an int)
2013-07-24 08:22:24 +02:00
Daniel Marjamäki a1fafa7f06 Library: added <formatstr> and <strz> to argument checks 2013-07-22 20:21:45 +02:00
Robert Reif 20f81f92d9 CheckIO: Improved handling of h, hh, l, and ll. 2013-07-22 08:28:29 +02:00
Lucas Manuel Rodriguez 7e556c215e Fixed #4861 (Improve check: object is destroyed immediately not detected when calling overloaded constructor) 2013-07-22 07:25:53 +02:00
Robert Reif f11e54aa42 Fixed #4902 (printf and scanf format checks don't support microsoft %I, %I32 and %I64 extensions) 2013-07-21 08:35:01 +02:00
Daniel Marjamäki 37716fb8bb Tokenizer: Set variable() pointer for array members 2013-07-20 17:46:39 +02:00
Lucas Manuel Rodriguez 59f448da8a Fixed #4908 (False positive: void * calculation (struct member, cast)) 2013-07-20 17:20:16 +02:00
Daniel Marjamäki 0c5e39a813 Library: Added configuration file std.cfg that clients should load. 2013-07-20 17:12:56 +02:00
Daniel Marjamäki dfed6bbea0 Fixed #4445 (Token::Match called with varid 0) 2013-07-19 21:18:54 +02:00
Daniel Marjamäki 7eb1f36200 astyle formatting 2013-07-19 09:28:45 +02:00
Daniel Marjamäki 794aebe3cf MathLib: Return inf.0 for NAN and INF calculations 2013-07-19 09:27:33 +02:00
Daniel Marjamäki 6fe1b92a47 Improved --check-library messages 2013-07-16 18:50:25 +02:00
Daniel Marjamäki fa7f8ddc78 Library: Renamed Argument to ArgumentChecks to make it a bit more clear 2013-07-16 09:40:31 +02:00
Daniel Marjamäki d25e7d4a21 Library: fixed problems 2013-07-16 08:21:38 +02:00
Daniel Marjamäki 24dfc052e2 astyle formatting 2013-07-15 21:57:58 +02:00
Daniel Marjamäki 7443883b9c Library: Improved handling in CheckNullPointer::parseFunctionCall for Library data 2013-07-15 18:55:40 +02:00
Lucas Manuel Rodriguez cfd697d6d4 Fixed #4042 (False Positive : Same expression on both sides of '&') 2013-07-11 07:13:47 +02:00
Daniel Marjamäki 8f332af849 Uninitialized variables: Avoid FP when using '?:' 2013-07-10 16:44:35 +02:00
Lucas Manuel Rodriguez 040c1e3a13 Fixed #4906 (False positive: void * calculation (cast)) 2013-07-10 06:40:09 +02:00
Daniel Marjamäki 4106972fdc Merge pull request #148 from JustRamires/master
Fixed segmentation fault in SymbolDatabase::SymbolDatabase(Ticket #4892)
2013-07-09 02:55:46 -07:00
Roman Zaytsev Borisovich 295869a866 Fixed segmentation fault in SymbolDatabase::SymbolDatabase(Ticket #4892) 2013-07-09 13:10:03 +04:00
Daniel Marjamäki 7d47fd65a2 Renamed --environment to --library. Added --check-library. Renamed Environment to Library 2013-07-08 18:26:18 +02:00
Lucas Manuel Rodriguez d177c8fd03 Fixed #4824 (False positive: (warning) Member variable 'Foo::m_state' is not initialized in the constructor.) 2013-07-08 06:38:33 +02:00
Daniel Marjamäki 2875ee1ecf astyle formatting 2013-07-07 10:26:20 +02:00
Simon Martin d0d3ce50c9 Added testcase for (now working) ticket #4742. 2013-07-06 18:02:04 +02:00
Daniel Marjamäki 2ef0a40aec Fixed #4893 (FP Uninitialized variable on sizeof of itself) 2013-07-06 08:52:47 +02:00
Lucas Manuel Rodriguez 00886b4d06 Fixed #4876 (Checking for sizeof(void)) 2013-07-05 21:07:07 +02:00
Daniel Marjamäki 61e1dd5096 Environment: Refactoring and cleanup 2013-07-05 20:55:31 +02:00
Daniel Marjamäki d96fb577cd CLI: Added --environment flag 2013-07-02 07:18:19 +02:00
Daniel Marjamäki 1a35241aa2 testrunner: removed redundant ';' 2013-06-30 19:44:12 +02:00
Daniel Marjamäki 582e0ee7e7 testrunner: Added REGISTER_TEST. Thanks lucasmrod. 2013-06-30 19:42:26 +02:00
Simon Martin e2deb59f8a Improved handling of syntax errors in Tokenizer::simplifyAddBracesPair. 2013-06-29 14:05:49 +02:00
Daniel Marjamäki 6b2bab535b CLI,LIB: Added --std setting for GTK 2013-06-29 12:55:24 +02:00
Daniel Marjamäki ba23b65179 Fixed #4885 (FP Uninitialized variable when using comma) 2013-06-29 09:33:51 +02:00
Daniel Marjamäki 6997d38881 Uninitialized variables: fixed false positive in while loop 2013-06-27 18:28:00 +02:00
Daniel Marjamäki 6b01d2d5a8 Fixed #4747 (Can not find uninitialized variable (variable used in rhs in assignment)) 2013-06-27 16:53:15 +02:00
Daniel Marjamäki da9e3b4f01 TestTokenizer: Added test cases for simplifyKnownVariables 2013-06-26 21:47:03 +02:00
Daniel Marjamäki c389e08353 Fixed #4728 (simplify known variables better (%var% & %num%, bitwise and)) 2013-06-26 18:13:28 +02:00
Daniel Marjamäki 2265c61734 Fixed #4879 (false positive: uninitialized variable in inner for inside while (regression)) 2013-06-26 17:02:57 +02:00
Zachary Blair a381170886 Fixed #4874 (Minor spelling corrections) 2013-06-26 00:47:02 -07:00
Daniel Marjamäki 7dd07472c1 Fixed #4530 (Tokenizer: improved simplification of strlen in calculation) 2013-06-25 20:10:40 +02:00
Daniel Marjamäki cfd960d794 Fixed #3765 (false negative: unitialized variable) 2013-06-25 18:40:41 +02:00
Simon Martin 75c8dcc664 Fixed #4873 (Preprocessor: Cppcheck is unable to scan a file with a single quote in a comment inside assembler section) 2013-06-25 06:45:11 +02:00
Lucas Manuel Rodriguez d6be4559cd Fixed #4840 (false negative: buffer access out of bounds) 2013-06-25 06:37:51 +02:00
Alexander Mai 5a9975bbdd Fixed #4869 (segmentation fault in Tokenizer::simplifyStructDecl (invalid code)) 2013-06-22 14:05:49 +02:00
Daniel Marjamäki bfc40ffe9f Fixed #4868 (Segmentation fault in Preprocessor::handleIncludes()) 2013-06-21 20:10:46 +02:00
Daniel Marjamäki e4270bab78 Fixed #4863 (macros not propagated) 2013-06-19 21:29:39 +02:00
Andreas Bießmann 9b3a8774c5 Test case for unreachableCode (#4756) 2013-06-18 06:40:43 +02:00
Daniel Marjamäki 2fb8133e90 Fixed #4862 (False positive: Comma is used in return statement (template)) 2013-06-18 00:13:45 +02:00
Alexander Mai 0be1892b92 Fixed #4806 (Crash in Type::initBaseInfo() in clang testcode) 2013-06-16 21:46:01 +02:00
Daniel Marjamäki 8ac2b4d516 Travis: Fixed failing test 2013-06-16 16:53:09 +02:00
Daniel Marjamäki d3d7808a06 Fixed #4834 (FreeType: incorrect array boundary analysis) 2013-06-16 15:41:13 +02:00
Daniel Marjamäki a9bd6cf3df Fixed #4857 (False Positive: function argument hides enumerator of same type) 2013-06-16 08:13:41 +02:00
Abhishek Bharadwaj d85c8e6782 Fixed #4104 (New check: comma separated statements in return statement from a function) 2013-06-15 17:49:10 +02:00
Daniel Marjamki 03f28e9c65 Fixed #4668 (Tokenizer: improve handling of 'if (x) MACRO() { ..') 2013-06-15 14:40:05 +02:00
Daniel Marjamäki 15c92384f4 Fixed #4851 (Preprocessor: problem when using #ifndef symbol in the code) 2013-06-15 12:08:18 +02:00
Daniel Marjamäki 722bfe7197 Fixed #4553 (Wrong calculation of known values) 2013-06-14 18:51:52 +02:00
Daniel Marjamäki eac4ebf185 astyle formatting 2013-06-14 07:22:46 +02:00
Daniel Marjamäki ae36472a1b Fixed #4778 (FP: Uninitialized variable: av) 2013-06-14 07:21:53 +02:00
Robert Reif 870d29944b Fixed #4852 (false positive: Member variable 'A::sz' is not initialized in the constructor) 2013-06-14 06:32:26 +02:00
Daniel Marjamäki cd5e32446f Fixed #4641 (False positive: Address of local auto-variable assigned to a function parameter) 2013-06-13 16:19:19 +02:00
PKEuS 876e9c0039 Fixed issue on C++11 right angle brackets (#4832) 2013-06-12 13:43:29 -07:00
Daniel Marjamäki c4763b9010 Fixed #4463 (false positive: (style) Variable 'CHDERR_NOT_OPEN' hides enumerator with same name) 2013-06-12 06:45:26 +02:00
PKEuS 4efccc2c5d Fixed #4420: Prefix increment is only suspicious, if its return value is not used. 2013-06-10 13:02:02 -07:00
Zachary Blair 28c0045f36 Fixed #4173: New check: arithmetical usage of inf/nan result 2013-06-09 23:13:08 -07:00
Daniel Marjamäki 4e816e2edf astyle formatting 2013-06-09 16:04:59 +02:00
Daniel Marjamäki 616a693f1f Merge pull request #139 from JustRamires/master
Ticket #4694
2013-06-08 07:46:08 -07:00
Daniel Marjamki 4e09b06bc1 Fixed #4827 (allow checking multiple configurations when using -D by also using --max-configs or --force) 2013-06-08 16:46:54 +02:00
Roman Zaytsev Borisovich 4610b135dc Fixed #4694 2013-06-07 10:37:33 +04:00
Daniel Marjamäki 10849e220b Fixed #4809 (Review CheckNullPointer::parseFunctionCall) 2013-06-07 06:37:53 +02:00
Daniel Marjamäki 9eac4489ac Fixed #4838 (False positive for ... seems to be invalid) 2013-06-06 12:44:19 +02:00
Frank Zingsheim f5a3492e3a astyle formatting 2013-06-05 22:19:37 +02:00
Frank Zingsheim aa25d1e0af Fixed #4837 (False positive: Assert statement calls a function which may have desired side effects (local variable)) 2013-06-05 22:10:43 +02:00
Daniel Marjamäki dec520c507 Tokenizer::simplifyEnum: Fixed false positives 2013-06-04 21:18:20 +02:00
Daniel Marjamäki 8b5792a0f8 Tokenizer::simplifyEnum: Fixed internalErrors when building with compiled patterns. 2013-06-04 18:57:46 +02:00
Daniel Marjamäki fa1fd31667 Tokenizer::simplifyEnum: Improved handling of shadow variables 2013-06-04 06:51:01 +02:00
Daniel Marjamäki 8954cc0984 Fixed #4280 (Tokenizer::simplifyEnum: don't simplify shadow variables) 2013-06-03 19:18:51 +02:00
Daniel Marjamäki 2d955bb9a6 Uninitvar: Added TODO test case for false negatives. Related with #4652 2013-06-02 18:26:03 +02:00
Daniel Marjamäki a7da65a40b Fixed #4618 (Unmatched suppression: don't show this information message unless --enable=information or --check-cfg is used) 2013-05-31 15:20:58 +02:00
Daniel Marjamäki 065853a59a Fixed #4652 (False positive: variable value tracking into loop body) 2013-05-29 16:16:12 +02:00
Daniel Marjamäki a861817a01 Fixed #4751 (CheckBufferOverrun: better handling when struct member instance doesn't have same varid as struct member declaration) 2013-05-28 16:52:23 +02:00
Daniel Marjamäki ae7363fe54 Fixed #4599 (False positive with fopen/fclose test) 2013-05-23 06:34:22 +02:00
Daniel Marjamäki 1936eb8676 astyle formatting 2013-05-21 16:59:58 +02:00
Robert Reif 2c8360c607 Fixed #4789 (uninitMemberVar not found when constructor contains default parameters) 2013-05-18 18:33:24 +02:00
Frank Zingsheim 0943fecf03 Fixed #4799 (Segmentation fault in K&R simplification inside lambda expression) 2013-05-14 20:56:31 +02:00
PKEuS b58e1241dc Distinguish between different swprintf overloads. (#4790)
Fixed MSVC warning recently introduced
2013-05-14 02:06:16 -07:00
PKEuS 1903585ea3 Fixed bug in handling rvalue references: Scope has to be set everywhere. (#4732) 2013-05-14 01:43:32 -07:00
Frank Zingsheim 511f8a4c1f More general fix to #4187 (False positive: Variable inside a lambda is reported as uninitialized) 2013-05-12 10:19:43 +02:00
Frank Zingsheim d387e8b770 Fixed #4711: (false positive: Consecutive return...) 2013-05-11 17:50:59 +02:00
Daniel Marjamäki b6bcdf2936 Fixed #4520 (segmentation fault of cppcheck (preprocessing)) 2013-05-09 18:50:24 +02:00
PKEuS fb480ebb0a Now really fixed #4604. 2013-05-09 15:39:33 +02:00
PKEuS 881b47e79d Revert "Improved handling of 0 initializations (#4604)"
This reverts commit 1201e417ec.
2013-05-09 15:32:02 +02:00
PKEuS 0a104c40b7 Fixed "Improved handling of 0 initializations (#4604)"
This fixes commit 1201e417ec.
2013-05-09 15:25:36 +02:00
PKEuS 982b9491d4 Improved handling of 0 initializations (#4604) 2013-05-09 06:23:25 -07:00
PKEuS c42b89fb88 Revert "Improved handling of 0 initializations (#4604)"
This reverts commit 1201e417ec.
2013-05-09 15:19:23 +02:00
PKEuS 1201e417ec Improved handling of 0 initializations (#4604) 2013-05-09 06:17:10 -07:00
Daniel Marjamäki cbe0a0825c Fixed #4725 (Tokenizer: Replace block declaration (^{}) with asm()) 2013-05-09 14:47:18 +02:00
XhmikosR f32aa89da3 run tabspace 2013-05-08 18:36:47 +02:00
Lena Herscheid e23038c4de Fixed #4775 (Check for assert() with side effects) 2013-05-07 21:35:16 +02:00
Frank Zingsheim bca751b9f4 Fixed #4773 (Regression: wrong detection of unitialized variable) 2013-05-06 18:45:00 +02:00
Daniel Marjamäki 4659745106 Fixed #4786 (segfault with one LibreOffice file) 2013-05-06 16:56:34 +02:00
Daniel Marjamäki 3f5a858800 dmake: update Makefile 2013-05-05 09:22:04 +02:00
Daniel Marjamäki ea60c5b14b CheckBufferOverrun: Code cleanup 2013-05-05 08:14:19 +02:00
Daniel Marjamäki 079d22fbee Fixed #4734 (False 'Possible null pointer dereference') 2013-05-03 16:18:44 +02:00
Zachary Blair de8ee5b042 Fixed #4554 (false negative: buffer access out of bounds) 2013-05-02 21:50:48 -07:00
Daniel Marjamäki bfb1bc50e3 Fixed #4760 (false negative: (error) usage of uninitialized variable (struct member)) 2013-05-02 20:34:15 +02:00
Alexander Mai 957e0790c6 Tokenizer::setVarId: assert that strange code with same type names and variable names work. Ticket: #3990 2013-05-01 18:50:35 +02:00
Daniel Marjamäki 44cb070e13 Fixed #4737 (False positive: Uninitialized variable 'do_something(&((char*)&var)[0],1);') 2013-05-01 13:52:28 +02:00
Frank Zingsheim 42068a3d60 Fixed #4767 (segmentation fault in expand template) 2013-05-01 13:28:01 +02:00
Daniel Marjamäki 287782a679 Fixed #4390 (False alarm 'Object pointed by an auto_ptr is destroyed using operator delete. You should not use auto_ptr for pointers obtained with operator new[].') 2013-05-01 11:11:57 +02:00
Daniel Marjamäki b2798e929d Improved fix for #4455, no false negatives if variable is used before first memset 2013-04-30 16:56:44 +02:00
Daniel Marjamäki cf75e2bb28 astyle formatting 2013-04-30 06:44:50 +02:00
Daniel Marjamäki 47ef8cf455 Fixed #4455 (redundantCopy when precleaning with memset) 2013-04-30 06:43:16 +02:00
Baris Demiray 548dd42aaf Fixed #933 (Leaks with struct members not detected) 2013-04-26 16:11:57 +02:00
Zachary Blair 35668380cf Fixed #4510 (False positive: "Possible null pointer dereference if the default parameter value is used" after init) 2013-04-25 00:25:56 -07:00
Daniel Marjamäki c3d1274db3 Reverted 'simplify NOT' since there are problems related to signedness of numeric values. 2013-04-24 06:32:34 +02:00
Daniel Marjamäki e1dd14626c Fixed #4735 (FP: Mismatching assignment and comparison) 2013-04-23 06:47:15 +02:00
Daniel Marjamäki a5b044a6e2 Fixed #4754 (False positive: Map literals trigger redundant code warning) 2013-04-20 07:51:44 +02:00
Daniel Marjamäki 9f8ce6f77f Fixed #4729 (Tokenizer::setVarId: Varid not tracked properly after function declaration with 'shadow' parameter name) 2013-04-19 18:36:16 +02:00
Daniel Marjamäki 8d9ad2ae0d TestTokenizer: Renamed test functions so they match the function names used in the Tokenizer (simplifyRoundCurlyParentheses) 2013-04-19 06:42:09 +02:00
Daniel Marjamäki e3be600479 TestTokenizer: Renamed test functions so they match the function names used in the Tokenizer 2013-04-18 16:13:58 +02:00
Daniel Marjamäki 80cb2a9b20 Updated TestUninitVar test cases. They should not have unsimplified code. 2013-04-17 21:06:19 +02:00
Daniel Marjamäki 4e65800adf TestRunner: Updated warning message when there is unsimplified code 2013-04-16 16:54:19 +02:00
Daniel Marjamäki fdac502c39 Simplified TestNullPointer test cases 2013-04-15 19:00:15 +02:00
Daniel Marjamki 9007345221 Simplified TestOther test cases 2013-04-13 20:17:53 +02:00
Daniel Marjamäki 37a87d2f9d Simplified TestClass test cases 2013-04-13 19:11:07 +02:00
Daniel Marjamäki dd6a806ada TestBoost: Warn if test case is not simplified properly 2013-04-13 18:42:56 +02:00
Daniel Marjamäki 8c6637c79c TestBool: Warn if test case is not simplified properly 2013-04-13 18:41:06 +02:00
Daniel Marjamäki 25582dbde7 Simplify TestAutoVariables test cases 2013-04-13 18:38:15 +02:00
Daniel Marjamäki b42ec0fe8b Simplify TestAssignIf test cases (else if) 2013-04-13 18:23:53 +02:00
Daniel Marjamäki 393c75af70 Simplified remaining TestBufferOverrun test cases 2013-04-13 15:49:15 +02:00
Daniel Marjamäki cbe2cdafcf Simplify TestBufferOverrun test cases (casts, pointer addition, calculation) 2013-04-13 13:58:21 +02:00
Daniel Marjamäki fe911f92e1 Simplify TestBufferOverrun test cases (known variable value) 2013-04-13 13:13:13 +02:00
PKEuS 6f9886a1b9 Removed more duplicate unit tests 2013-04-13 02:07:18 -07:00
Daniel Marjamäki 78d3aef40e Simplified TestBufferOverrun test cases (sizeof, known variable value) 2013-04-13 11:01:19 +02:00
PKEuS 693c6e84cb Removed more duplicate unit tests 2013-04-13 01:49:17 -07:00
PKEuS 8e4f99884b Removed more duplicate unit tests 2013-04-13 00:49:00 -07:00
Daniel Marjamäki 3b880f9e2e Simplified TestBufferOverrun test cases (sizeof, known variables, casts, etc) 2013-04-13 08:19:14 +02:00
Daniel Marjamäki 7871f16e9d Simplified TestBufferOverrun::readlink test cases (sizeof) 2013-04-13 07:31:15 +02:00
Daniel Marjamäki 6afdd1b7c0 Simplified TestBufferOverrun::readlinkat test cases (sizeof, known variables) 2013-04-13 07:22:01 +02:00
PKEuS cdce755471 Removed duplicate unit tests in testbufferoverrun.cpp 2013-04-12 12:17:08 -07:00
Daniel Marjamäki 9ad39ca4c0 Fixed #4544 (Crash with this line : class CD : public CC< class CB< CA > >) 2013-04-12 16:38:12 +02:00
Daniel Marjamäki e8fbd39efd Templates: better handling of 'X<class Y>' template instantiations. Ticket: #4544 2013-04-11 18:58:39 +02:00
Ettl Martin e03a3946d0 avoid crash in checkother:wrongPipeParameterSize when a pointer with unknown size is provided. 2013-04-11 14:22:22 +02:00
Ettl Martin 33cfc1a52e fixed #4726: simplify bitwise Not (~ %num%) 2013-04-11 09:16:40 +02:00
Daniel Marjamäki a49fc57e00 Tokenizer: don't simplify 'a!=(b!=0)' to 'a!=b'. Ticket: #4697 2013-04-11 07:19:32 +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
Daniel Marjamäki 7fdaba43ed Uninitialized variables: Fixed fp when initializing struct with function in loop body 2013-04-10 20:46:44 +02:00
Daniel Marjamäki 96a5429cee Uninitialized variables: Assume that function initializes struct if it is unknown if it does 2013-04-10 20:04:32 +02:00
PKEuS 994c429b7d Moved checks related to sizeof usage from checkother into new file 2013-04-10 09:49:38 -07:00
PKEuS 42fcb04d0c Moved checks related to boolean type (not condition checking!) from checkother into new file 2013-04-10 09:25:50 -07:00
PKEuS 4e6d105cbd Added support for complex patterns to CheckOther::checkIncorrectStringCompare() 2013-04-09 09:16:35 -07:00
XhmikosR 8ac9b8e7a9 remove duplicate ";" and fours dots 2013-04-09 17:49:09 +02:00
XhmikosR 700512a53f use spaces in strings 2013-04-09 17:49:09 +02:00
PKEuS c487ea843d Better fix for #4706: Use Token::nextArgument() properly. Removed redundant ' in message 2013-04-09 08:30:53 -07:00
Daniel Marjamäki 4c8b17c040 Fixed #4717 (False positive: Uninitialized variable inside ({..})) 2013-04-09 17:02:11 +02:00
Daniel Marjamäki 894a2435ae Fixed #4718 (False positive: unititialized variable (value flow)) 2013-04-08 19:34:39 +02:00
Alexander Mai 14fc140592 Fixed memory leaks in teststl 2013-04-07 18:43:18 +02:00
Daniel Marjamki cd770fb106 Fixed #4310 (False positive 'boolean result in bitwise' message in template class (was #3818)) 2013-04-07 16:48:42 +02:00
Daniel Marjamäki f43d732f33 Fixed #4691 (False positive: Mismatching bitmasks in switch()) 2013-04-07 04:25:10 +02:00
Daniel Marjamäki 38680e3440 Fixed #4677 (Message for 'possible null pointer dereference, otherwise it is redundant to check..' is warning but says error) 2013-04-07 03:41:02 +02:00
zblair ecfe4eb5be Fixed #3372 (New check: dereference iterator and then checking it) 2013-04-04 21:14:59 -07:00
PKEuS eb2962792f Implemented support for move constructors:
- Changed behaviour of Token::function - is now also set for declarations
- Resolved TODO in testclass.cpp
- removed redundant code in Scope::findFunction - it is safe to call nextArgument() on functions without arguments
- Use Token::function in checkother.cpp
2013-04-04 10:53:55 -07:00
PKEuS 188096665c Implemented support for rvalue references (C++11):
- Split up && when it is part of an rvalue reference declaration
- Added support into symbol database
- Current implementation sets Variable::isReference() to true also for rvalue references - they can probably be treated like normal references in many checks.

Changed behaviour of symbol database: Insert argument Variable of functions that are not implemented into SymbolDatabase::_variableList
2013-04-04 09:47:44 -07:00
Ettl Martin ba8cca8fa9 #4706 fix crash when a struct member is used as first argument. Replaced Token::nexArgument with %any% in Token::Match call. Added unittests in testing Token::nexArgument. 2013-04-04 15:12:18 +02:00
PKEuS 51685f24c5 Improved expression parsing in CheckNullPointer::isPointerDeRef() - fixed #4692 2013-04-03 01:27:08 -07:00
Ettl Martin 3e8eddc69e cleanup testcases: moved testcases from #3888 into allocfunc13 which contains similar testcases already. 2013-04-03 10:12:36 +02:00
Ettl Martin 08ac48199e #3103 added testcases. 2013-04-03 09:33:33 +02:00
Ettl Martin 9f25b618dc #3888 added a testcase 2013-04-03 08:57:26 +02:00
PKEuS 7596282cba Improved test coverage: Ensure that passing multiple <id> to --enable works. Check settings.isEnabled("warning"). 2013-04-01 04:15:05 -07:00
PKEuS fbe997ca80 Use global Settings instance in TestCmdlineParser, since most tests just need it to pass something to CmdlineParser class.
This change implies that we do not rely on any default state of the Settings class - as it should be, since CmdlineParser is tested, not Settings.
2013-04-01 04:12:56 -07:00
Frank Zingsheim 395a474ec2 Fixed #4695: Infinite recursion inside isRecordTypeWithoutSideEffects() 2013-04-01 12:41:14 +02:00
PKEuS 12f5ccfb4e Refactorized postfix operator check:
- Support class members
- Support references (removed wrong bailout)
- Removed wrong unit tests and wrong messages for std::cout << k-- << std::endl;
2013-03-31 04:17:23 -07:00
XhmikosR a9955cce8e run astyle 2013-03-30 19:06:13 +01:00
Frank Zingsheim 5d55d40361 Fixed #4656 (New check: Detect pure virtual function calls) 2013-03-30 15:09:22 +01:00
Robert Reif a3f9b5c07d Fixed #4686 (Prefer prefix ++/-- operators for non-primitive types with template iterator) 2013-03-30 13:49:56 +01:00
Alexander Mai b9c27699b3 Fixed #4684 (cppcheck crash in template function call.) 2013-03-29 19:29:23 +01:00
Daniel Marjamäki 3301728c50 astyle formatting 2013-03-29 17:55:09 +01:00
Alexander Mai 7902cd0123 Fixed #4447 (false positive: (style) Variable 'X' is assigned a value that is never used (goto)) 2013-03-28 06:44:37 +01:00
Robert Reif 3f57b5a6ca Fixed #4682 (using 'struct' disables checking) 2013-03-28 06:36:49 +01:00
Daniel Marjamäki 2d70af2c82 Reverted fix. It might be possible to make a better fix 2013-03-25 19:55:35 +01:00
Daniel Marjamäki 2b02013fa7 Fixed #4668 (False positive: uninitialized Variable after unknown macro) 2013-03-25 19:52:33 +01:00
PKEuS 37ac86dec9 Fixed #4666: Implemented proper variable scope checking for switch statements 2013-03-23 03:28:33 -07:00
Daniel Marjamäki c9469993e2 Uninitialized variables: Fixed false positives when using sizeof inside loop 2013-03-22 08:10:46 +01:00
Daniel Marjamäki a79354d51c Uninitialized variables: Fixed false positive when taking address of uninitialized array that is a struct member 2013-03-20 16:59:45 +01:00
Ettl Martin 1b9c1c03fa unittests: removed not needed '\n' at the end of testcases. 2013-03-20 15:36:16 +01:00
Daniel Marjamäki dd155b57e4 Fixed #4487 (False positive: variable is not assigned a value (pointer alias)) 2013-03-20 06:38:53 +01:00
Ettl Martin 54d398c7dd unittests: removed not needed '\n' at the end of testcases. 2013-03-19 09:18:58 +01:00
Ettl Martin 7c0905cd4e #4665 added todo unittest 2013-03-19 08:47:05 +01:00
Ettl Martin ff826d7c62 #4664: new check: (POSIX) write outside buffer size. 2013-03-19 08:22:48 +01:00
Daniel Marjamäki 1b18bfc93c Fixed #3585 (errors not recognized when class has extra specification) 2013-03-18 19:09:04 +01:00
PKEuS d9f7042992 Fixed false negative #4663 2013-03-18 08:17:53 -07:00
Daniel Marjamäki a4a2f78a7a Fixed #4659 (portability: address value / integer false positive) 2013-03-17 17:25:57 +01:00
PKEuS 1e66e0b931 Fixed false negative #4657 2013-03-15 05:00:51 -07:00
kchrist 740e790bf1 Fixed #4649 (false positive: Used file that is not opened; variables in struct) 2013-03-15 06:42:46 +01:00
Daniel Marjamäki c0a34649c4 fixed 'duplicate expression' false positives for float-float. Ticket: #4639 2013-03-14 19:11:29 +01:00
Daniel Marjamäki 369e80b021 Fixed #4465 (syntax error on valid C++ source file) 2013-03-14 18:52:22 +01:00
PKEuS 096fa2f771 Fixed #4380 2013-03-14 10:18:48 -07:00
PKEuS ed477ceb74 Fixed false negative mentioned in #4354. 2013-03-14 09:27:42 -07:00
PKEuS 641ac5c02a Fixed #4352: Ensure that class provides an iterator interface. 2013-03-14 09:00:22 -07:00
Thomas Jarosch 61d9424631 astyle formatting 2013-03-14 11:10:12 +01:00
Ettl Martin cd1392749c Removed not needed '\n' at the end of testcases in testbufferoverrun.cpp. No functional changes. 2013-03-14 09:45:47 +01:00
Ettl Martin c8798b2207 #3838 added more testcases. 2013-03-14 09:36:38 +01:00
Ettl Martin 19c430530f #3838 added another testcase to avoid a FP. 2013-03-14 09:21:31 +01:00
Robert Reif 4b9b87e310 Fixed #4646 (false positive: (style, inconclusive) Technically the member function 'C<T>::operator+=' can be const.) 2013-03-14 06:34:12 +01:00
Alexander Mai f43ea5c491 Fixed #4594 (Analyzing errors about system headers not being found) 2013-03-13 19:50:50 +01:00
Daniel Marjamäki 1f04e2c228 Fixed #4439 (False positive: Uninitialized variable (casting address)) 2013-03-13 17:32:47 +01:00
Ettl Martin 34b3fe6af0 #1659 added TODO-testcases. 2013-03-13 10:55:20 +01:00
Alexander Mai 59d636742e Fixed #4594 (Analyzing errors about system headers not being found) 2013-03-13 06:48:33 +01:00
Frank Zingsheim e91e7148de Test case for #4644 (Tokenizer: Wrong varId after typename):
Added equivalent test with "class"
2013-03-12 19:50:24 +01:00
PKEuS 796c3e101f Implemented better fix for #4644 2013-03-12 08:05:03 -07:00
PKEuS 2333aa2cc7 Don't use native separators for suppression matching 2013-03-12 07:53:18 -07:00
PKEuS 14feaa8d39 Refactorizations:
- Fixed lots of cppcheck messages about functions that can be const or static
- Fixed possible nullpointer dereference message in symboldatabase.cpp
- Replaced tokAt(+-1) by next()/previous()
2013-03-12 07:42:00 -07:00
Alexander Mai 9d88cc63e8 Fixed #4642 (False positive: Returning an address value in a function with integer return type is not portable. (not returning address)) 2013-03-12 06:49:13 +01:00
Ettl Martin 3d1cdd0eec #4645 implemented correct range according manpage of usleep(). 2013-03-11 17:38:03 +01:00
Ettl Martin dde51f73ff removed wrong line of testcode (introduced by my last commit). 2013-03-11 17:20:41 +01:00
Ettl Martin bb115573f7 #4645 implemented new check: (POSIX) argument of function usleep() too big. 2013-03-11 17:04:30 +01:00
PKEuS b3a9ac5c3b Fixed #4644: Don't assign varid to template parameter when 'typename' is used 2013-03-10 06:11:25 -07:00
Daniel Marjamäki 1f40af2ae2 Fixed #4637 (false positive: (error) Uninitialized member variable (missing function inlining)) 2013-03-09 17:55:49 +01:00
Robert Reif 25c36b56fa CheckClass: made warnings about uninitialized members in default constructors inconclusive. Ticket: #4639 2013-03-09 09:20:48 +01:00
PKEuS 99a73fe1d3 Don't assign a varid to a variadic function 2013-03-05 08:32:52 -08:00
PKEuS 2a312efd6e Adapted testsymboldatabase.cpp to recent changes 2013-03-05 06:46:34 -08:00
PKEuS 66a3555897 Implement initial support for Types in Symboldatabase:
- For each class/struct/union, a Type instance is added to SymbolDatabase::typeList.
- A scope is no longer created for declared but not defined types

Fixed name detection for classes when they are declared like this: "class ::Foo::Sub {..."
2013-03-05 04:33:38 -08:00
PKEuS 6eed6b3cf3 Partially reverted 657e5d7ea2 because of trigraph issue. 2013-03-05 01:21:59 -08:00
PKEuS 657e5d7ea2 Fixed some small formatting issues in test suite 2013-03-04 11:14:56 -08:00
PKEuS 0f03995995 Added support for different containers, while-loops and if to CheckStl::stlOutOfBounds() 2013-03-04 10:59:46 -08:00
Daniel Marjamäki 78a3a58a5a Fixed #4628 (False positive: Variable is assigned a value that is never used) 2013-03-04 19:13:49 +01:00
Ettl Martin 687c3a4654 Merge branch 'master' of github.com:danmar/cppcheck 2013-03-04 14:25:51 +01:00
Ettl Martin c9b519bcd1 improved check: checkCastIntToCharAndBack. The check now handles (cin.get() != EOF) patterns. 2013-03-04 14:25:35 +01:00
PKEuS 34b1d75a10 Fixed handling of std::vector::insert() in CheckStl::pushback() 2013-03-04 02:57:09 -08:00
PKEuS c24527dbde Improved handling of dereferences in CheckClass::noMemset(), fixing false negatives and false positives related to multidimensional arrays and arrays of pointers. 2013-03-04 02:47:29 -08:00
PKEuS 8a18f9ec3b Rewrote CheckOther::checkVariableScope() 2013-03-03 10:35:33 -08:00
PKEuS 5c1a05dcbe Refactorizations in CheckOther:
- Make CheckOther::checkCastIntToCharAndBack() work for multiple variables at once
- Improved messages of CheckOther::checkSuspiciousSemicolon() and CheckOther::checkPipeParameterSize()
2013-03-03 09:54:44 -08:00
PKEuS d78c06dc3f Replaced _settings->isEnabled("style") by _settings->isEnabled("warning") wherever warnings are issued 2013-03-03 02:41:59 -08:00
Daniel Marjamäki d7a52eaecd Fixed #4608 (false positive: (style) struct or union member is never used.) 2013-03-01 16:13:04 +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
PKEuS 75799446aa Added unit test for #4619 2013-03-01 04:06:51 -08:00
PKEuS f899e6ca30 Changed behaviour of %op% pattern accordingly to changes to Token::isOp(). Added %cop% as replacement for old %op% 2013-03-01 02:43:59 -08:00
PKEuS 670c4de8a9 Changed behaviour of Token::is*Op() functions:
- Rename Token::isOp() to Token::isConstOp() (indicating that the operator does _not_ modify the input variables)
- Create new Token::isOp(), returning true also for ++, -- and assignment operators
- Make Token::isExtendedOp() returning also true for all assignment and ++/-- operators
2013-02-28 12:50:29 -08:00
Daniel Marjamäki ecafe7a129 Fixed #4624 (Wrong error for instances of std::unique_lock (variable is never used)) 2013-02-28 17:02:58 +01:00
zblair ed03e2c845 Fixed #4539 (False positive: Possible null pointer dereference) 2013-02-27 23:45:21 -08:00
Daniel Marjamäki 94da3bd57f Fixed #4617 (False positive (style): noexcept for constructors) 2013-02-28 06:38:57 +01:00
Ettl Martin 8d682233d0 Implemented new check (Ticket #160): Storing getc() retun value in char variable and comparing to EOF. 2013-02-27 21:02:12 +01:00
Robert Reif 509061afff Fixed #4620 (False positive: Uninitialized variable in constructor (1.58)) 2013-02-27 06:59:04 +01:00
Daniel Marjamäki df55ce14a0 Fixed #4503 (False positive: Incomplete statement (std::vector<int> v{1};)) 2013-02-24 10:00:03 +01:00
Daniel Marjamäki 2edf95a1b9 Fixed #4367 (false positive: Class '...' is unsafe, '...' can leak by wrong usage) 2013-02-24 08:14:25 +01:00
Daniel Marjamki 5c7e1cf9ff Fixed #4387 (false positive 'constStatement' in 1.57) 2013-02-23 16:26:25 +01:00
Daniel Marjamki ee435bf885 Fixed #4600 (False positive Uninitialized struct member when using it as 'out parameter') 2013-02-23 15:57:58 +01:00
Daniel Marjamäki bce99a9e2f Fixed #4394 (FP: Variable 'a' is not assigned a value) 2013-02-20 17:43:16 +01:00
Daniel Marjamäki 71b66209b7 Fixed #4300 (segmentation fault of cppcheck (invalid code)) 2013-02-20 06:58:27 +01:00
Alexander Mai 34c3697750 Added unit test for #4525 2013-02-19 21:56:13 +01:00
PKEuS 33cf561d85 Refactorized check for assigning function parameters:
- Fixed false negative: Check is also valid for all non-references, not only for pointers.
- Fixed false negative: Usage before assignment doesn't require bailout
- Fixed false positive #4598 caused by inadequate usage of CheckUninitVar::isVariableUsage
- Made several member functions static
2013-02-18 08:52:49 -08:00
Daniel Marjamäki 1c584208b4 Fixed #4329 (False duplicateBranch when branches use conditionally defined macros) 2013-02-18 17:18:33 +01:00
Robert Reif e6915e7a78 Fixed #4536 (non-static member initializer causes false positive) 2013-02-18 06:33:53 +01:00
Ettl Martin 73e2a8fdb5 Merge branch 'master' of github.com:danmar/cppcheck 2013-02-17 17:34:44 +01:00
Ettl Martin f451dd1137 #3521 implemented new check: wrong buffersize to pipe() function provided. 2013-02-17 17:33:32 +01:00
PKEuS 711d0d7a33 Warn about memset(this, 0, sizeof(*this)); (#1285) 2013-02-16 11:02:43 -08:00