Commit Graph

6686 Commits

Author SHA1 Message Date
orbitcowboy a1b2597a5e test/cfg/ Suppress implicit function declaration warnings from GCC. 2015-08-27 14:49:52 +02:00
PKEuS af07c3ce46 Merge pull request #649 from simartin/useless_todo
Remove unnecessary TODO exception safety test case.
2015-08-27 14:40:47 +02:00
PKEuS 2ace3d3144 Rewritten handling of declaration specifiers:
- Removed simplifyConst() because it did the opposite of the (superior) simplifyStaticConst()
- Execute simplifyStaticConst() in simplifyTokenList1() - there is no reason to defer it, and it is required to properly parse declarations like "unsigned static int i;"
- Fixed simplifyStaticConst() to handle more patterns. It did not work at the beginning of the token list and for function arguments
- Reimplemented Tokenizer::simplifyStdType()
-> properly support all possible ways to declare integers as requested by the standard, instead of only a few common permutations of "unsigned|signed", "short|char|long|int"
-> Fixed parsing of _Complex/complex types
2015-08-27 14:34:17 +02:00
PKEuS 7bb79562e9 Skip inner classes in CheckAutoVariables::returnReference() (#6951) 2015-08-26 13:31:51 +02:00
PKEuS 37aec52399 Simplify complex/_Complex types (#6939) 2015-08-26 13:13:45 +02:00
PKEuS c8c59aa92b Removed Tokenizer::simplifyIfSameInnerCondition(). It covered only very simple patterns and is unlikely to have an impact on real-world code. 2015-08-26 13:04:00 +02:00
Simon Martin 6fb19b02d0 Properly differentiate arrays of pointers and pointers to arrays. 2015-08-25 21:19:19 +02:00
Simon Martin 8beb95e179 Fix CheckClass::checkMemset for arrays of pointers. 2015-08-23 19:57:58 +02:00
Simon Martin 0c2b5cc244 Remove unnecessary TODO exception safety test case. 2015-08-21 22:28:56 +02:00
amai2012 873861df4a #6948 cash: daca: mgetty (garbage code) 2015-08-21 10:40:43 +02:00
PKEuS 8d926d7328 Moved some simple WinAPI/MFC-specific simplifications to windows.cfg 2015-08-20 15:59:59 +02:00
PKEuS 128a926d9d Collected some more garbage code tests in testgarbage.cpp; Avoid std::string creation in testgarbage.cpp 2015-08-16 19:12:12 +02:00
Martin Ettl c26ec86508 std.cfg: Readded accidentially removed functions from <cfenv> and added test cases to test/cfg/std.cpp. 2015-08-16 15:05:42 +02:00
Martin Ettl ca7e232b60 Merge branch 'master' of https://github.com/danmar/cppcheck 2015-08-16 14:49:59 +02:00
Martin Ettl 58d7b8a3f2 std.cfg: Added more test cases. 2015-08-16 14:49:35 +02:00
PKEuS 0babc4f38f Moved some unit tests to testgarbage.cpp 2015-08-16 14:49:35 +02:00
Martin Ettl 2665fb9481 std.cfg: Removed some non-existent functions that accidentially declared being in standard namespace. Improved testing of std.cfg functions. 2015-08-16 14:38:13 +02:00
PKEuS ab8afec3eb Refactorizations:
- Avoid unnecessary loop iterations
- Avoid unnecessary condition checking
- Reduced code duplication in symboldatabase.cpp
2015-08-16 14:23:07 +02:00
Martin Ettl a8af7142a1 std.cfg: Added more test functions. 2015-08-16 01:29:34 +02:00
Martin Ettl 716b4d6e18 Another attempt to fix the current travis build. Improved testing of std.cfg. 2015-08-16 01:21:11 +02:00
Martin Ettl ab0862f218 std.cfg: Fixed travis build. Added noreturn to the assert-definition in std.cfg. Improved testing of std.cfg. 2015-08-16 01:09:03 +02:00
Martin Ettl b2bf6cde5f std.cfg: Improved testing of libary functions. Removed some non existent such as std::sinf from the libary and added corresponding test cases to test/cfg/. 2015-08-16 00:52:52 +02:00
Daniel Marjamäki c72047f6f5 Fix 'make checkcfg' errors. 2015-08-15 14:35:23 +02:00
PKEuS b77912a0b5 Support namespaces in CheckOther::checkIgnoredReturnValue() 2015-08-15 12:19:14 +02:00
PKEuS 4d80df2f4a Added pointer to Type to Token (similar to Token::Variable() and Token::function()):
- Accessible via Token::type()
- Renamed former Token::type() to Token::tokType()
- Removed SymbolDatabase::isClassOrStruct()
2015-08-15 11:19:21 +02:00
Daniel Marjamäki 871b02ea88 removed testcase for #5238. it's not good enough. 2015-08-15 07:38:56 +02:00
Martin Ettl 84486605ec #6392: Added a regression test case. 2015-08-15 01:00:36 +02:00
Martin Ettl 278808daa9 #5238: Added a regression test case. 2015-08-15 00:49:07 +02:00
Martin Ettl 640ec3a099 #6491: Added a regression test. 2015-08-15 00:31:26 +02:00
Alexander Mai 4fe61a6c3e Correct actual result string 2015-08-14 18:55:21 +02:00
Alexander Mai 8b433fa053 Add regression test for #6299. Fix clang compiler warning due to doxygen comment 2015-08-14 18:27:03 +02:00
PKEuS a297a03b64 Fixed false positive #6787: Skip over lambdas in CheckAutoVariables::returnReference() 2015-08-14 13:03:07 +02:00
PKEuS b0bf69bae7 Fixed false positive #6763 and reordered conditions
Ran AStyle
2015-08-14 12:50:45 +02:00
PKEuS 3cf67014ad Fixed parsing of template in enum 2015-08-14 11:08:03 +02:00
Daniel Marjamäki e578988832 invalidScanf: removed the checking for 'scanf crash with huge input data for old glibc'. new systems are not vulnerable to this bug anymore. 2015-08-14 08:03:46 +02:00
Martin Ettl e9b1f1f0a6 test/cfg/ Started to test std::complex functions. 2015-08-14 02:06:48 +02:00
Martin Ettl 77869b7812 test/cfg: Improved testing of functions from standard namespace. Added test/cfg/*.c* files to astyle script and formatted code. 2015-08-14 01:36:44 +02:00
Malcolm Parsons daf633ef78 Fixed #5028 Fix parsing of C++11 raw string literals 2015-08-12 13:11:55 +01:00
Daniel Marjamäki 6865724c4e Fixed #6914 (Token::expressionString: parenthesis missing in expression (*it)->stats.corpse_ticks) 2015-08-12 10:55:25 +02:00
PKEuS 002b606a9c Refactorized CheckObsoleteFunctions:
- Mention all checked functions in getErrorMessages() and classInfo(), not only posix ones
- Made members static and initialize them only once only once
- Better support for global namespace
2015-08-11 14:57:23 +02:00
Matthias Krüger 7a90b36cca CheckVaarg::va_start_subsequentCallsError: fix spelling "inbetween" -> "in between" 2015-08-11 14:03:00 +02:00
Matthias Krüger 391194579c CheckOther::checkComparisonFunctionIsAlwaysTrueOrFalseError: "evaluates always" -> "always evaluates" 2015-08-11 13:27:55 +02:00
Daniel Marjamäki 501ab0b6da CheckLeakAutoVar: updated handling of unknown types in C++ 2015-08-11 12:41:42 +02:00
Daniel Marjamäki 2e78d21480 Fixed #6730 (ValueFlow: inner scope does not return (continue,throw)) 2015-08-11 11:21:03 +02:00
Martin Ettl 797cac5098 Library: Started to test functions from std-namespace. 2015-08-10 23:44:36 +02:00
Martin Ettl ceafde86ad Library: Removed not needed suppressions. 2015-08-10 23:09:56 +02:00
Martin Ettl 38cba67115 Suppressed compiler warnings during testing cfg tests. 2015-08-10 22:58:46 +02:00
Alexander Mai b3cc4629a6 Remove obsolete tests. Add incomplete test for GNU __builtin_expect to gnu.c 2015-08-10 21:20:20 +02:00
Daniel Marjamäki 5b287fc849 Library: The <function> name attribute can now have a comma separated list of names 2015-08-09 21:27:57 +02:00
Daniel Marjamäki b70fe4c609 Fixed #6711 (Add namespace support to library files) 2015-08-09 19:55:33 +02:00
Daniel Marjamäki 9627fccdc5 assignFunctionArg: don't warn when there is self assignment. There is a separate warning for self assignments. 2015-08-09 14:51:23 +02:00
Daniel Marjamäki e71ab70356 Fixed #6871 (False positive uninitvar - pointer to uninitialized char[]) 2015-08-08 14:52:46 +02:00
Daniel Marjamäki 72706cd0b8 Fixed #6868 (Tokenizer: wrong simplification of the unlikely keyword) 2015-08-08 12:49:42 +02:00
Daniel Marjamäki 8f309aed12 TestUninitVar: cleanup duplicate tests for function handling 2015-08-08 09:57:56 +02:00
Daniel Marjamäki 7ec8adeb93 Fixed #6701 (Uninitialized variable warning when header could not be found) 2015-08-08 08:53:08 +02:00
Daniel Marjamäki c9e239afbf Fixed #6908 (False positive: Same expression on both sides of '+='.) 2015-08-07 20:28:25 +02:00
Daniel Marjamäki ec3d76be5e astyle formatting 2015-08-07 20:27:32 +02:00
amai2012 53feb88614 Merge pull request #630 from Dmitry-Me/detectRaceInInterlockedAccess
Prototype for detecting non-interlocked check after InterlockedDecrement()
2015-08-06 15:43:10 +02:00
Daniel Marjamäki 07a064aab0 Fixed #6910 (ValueFlow: variable incremented as macro argument is not known) 2015-08-05 14:08:57 +02:00
Dmitry-Me 43800a9419 Detect non-interlocked check after InterlockedDecrement() 2015-08-05 12:20:28 +03:00
Daniel Marjamäki eda5272dfd Fixed #6875 (Improve 'Redundant condition' error message) 2015-08-05 11:15:54 +02:00
Daniel Marjamäki 4bebb80300 Fixed #6869 (False positive: uninitvar, array passed to function) 2015-08-05 10:19:17 +02:00
Daniel Marjamäki 67e9ed9294 ZeroDiv: Avoid constant folding in testcases 2015-08-02 18:56:26 +02:00
Daniel Marjamäki 8d3f7e36e9 Fixed #6911 (valueflow: comparison of string and NULL) 2015-08-02 18:12:03 +02:00
Alexander Mai ea62ab337b Add more testcases for zerodiv 2015-08-02 14:05:09 +02:00
Frank Zingsheim 7021cb2c6b Fixed #6284 (Token::Match called with varid 0. Constants) 2015-08-02 09:11:51 +02:00
Simon Martin 0009ceee59 Ticket #6793: Added basic unit test showing that basic integer shift length check is run even for templates. 2015-08-02 00:03:09 +02:00
Alexander Mai 965a034afd Fix some more false positives on zerodiv: error should be issued if type of epxression is known to be integral 2015-08-01 18:42:17 +02:00
Alexander Mai f91ad9bbf6 5402 false positive: (error) Division by zero -- with boost::format 2015-08-01 17:28:54 +02:00
Martin Ettl 1741af497f Added test case for #6858. 2015-08-01 17:26:23 +02:00
Martin Ettl b7ea311123 Running astyle. No functional changes. 2015-08-01 12:31:16 +02:00
amai2012 b182edddda #6909 segmentation fault (invalid code) in Tokenizer::simplifyEnum 2015-08-01 12:24:22 +02:00
Alexander Mai acf050793e #6907 segmentation fault (invalid code) in Tokenizer::simplifyTokenList1 2015-08-01 07:39:56 +02:00
Alexander Mai 0b96b9d984 #6505 ValueFlow: handle 2 related if in valueFlowSubFunction. Regression test. Bug got fixed before 2015-07-31 21:15:43 +02:00
Alexander Mai 4400f2ac85 #6900 segmentation fault (invalid code) in CheckStl::runSimplifiedChecks. 2015-07-31 20:24:06 +02:00
Matthias Krüger 73eefa46fc testcondition: update testcase that was added since I did the changes. 2015-07-31 15:31:43 +02:00
Matthias Krüger 8bfbb5d09c CheckMemoryLeakNoVar::returnValueNotUsedError: put function name into singlequotes 2015-07-31 15:29:07 +02:00
Matthias Krüger 83ee640977 Tokenizer::syntaxError: put the character that we have an invalid number of into singlequotes instead of parentheses. 2015-07-31 15:28:59 +02:00
Matthias Krüger 87891b4128 CheckCondition::checkIncorrectLogicOperator put conditions in single quotes 2015-07-31 15:28:48 +02:00
Matthias Krüger 21ed807f8d CheckCondition::alwaysTrueFalseError: put condition in single quotes. 2015-07-31 15:28:37 +02:00
Daniel Marjamäki 251f6d2a15 Fixed #6898 (Token::expressionString: wrong output when first token is post-incremented) 2015-07-31 07:03:52 +02:00
Martin Ettl 42a406ac5f testbufferoverrun: Removed duplicate test case. 2015-07-30 22:42:45 +02:00
amai2012 249a05126b #6895 segmentation fault (invalid code) in CheckCondition::isOppositeCond 2015-07-30 17:19:19 +02:00
Daniel Marjamäki d4344bd859 cleanup testcases for div() 2015-07-30 14:05:53 +02:00
Daniel Marjamäki 1752c4f4f0 Avoid 'Condition always true/false' FP when part of the condition is an expanded macro 2015-07-30 13:30:16 +02:00
amai2012 c5673612e2 #6069 False positive incorrectLogicOperator due to dynamic_cast. Run CheckCondition::checkIncorrectLogicOperator on non-simplified tokenlist. 2015-07-30 10:30:30 +02:00
Daniel Marjamäki 9085fdc156 Fixed #6887 (False positive eraseDereference - container is member of member variable) 2015-07-30 10:13:49 +02:00
Daniel Marjamäki 6790d91fbb Improve error messages for conditional values. make valueFlowSwitchVariable values conditional that depend on the case. Partial fix for #6884. 2015-07-29 19:54:57 +02:00
PKEuS 738057229c Improved astIsFloat(): Handle function calls and sizeof, fixed ordering of checks
Handle sizeof in isSameExpression() (#6851)
2015-07-29 14:28:24 +02:00
Daniel Marjamäki 120f3072eb alwaysTrueFalse: Dont write warning when comparison is made in macro 2015-07-29 12:51:00 +02:00
Daniel Marjamäki fc25ed8c86 Fixed #6879 (valueflow in do-while(++i)) 2015-07-29 11:55:07 +02:00
Daniel Marjamäki bf75ee9aed Fixed #6885 (valueflow ignores assignment of variable via function call) 2015-07-29 10:49:17 +02:00
amai2012 1f43550688 #6880, 6881 Crashes on invalid code. Fix null pointer access 2015-07-28 18:41:50 +02:00
Dmitry-Me 544932734f VS: Disable 4482 warning 2015-07-28 18:33:45 +02:00
Daniel Marjamäki e759710198 Fixed #6743 (valueFlowAfterCondition: wrong value when variable is changed in conditional code) 2015-07-28 08:58:05 +02:00
Daniel Marjamäki c5bbea2994 Fixed #6816 (FP: buffer overflow, checkminsizes of array with string value) 2015-07-27 16:39:41 +02:00
Daniel Marjamäki b50f554b28 TestValueFlow::valueFlowArrayElement: Refactoring tests 2015-07-27 16:25:14 +02:00
Daniel Marjamäki 05a21d45eb Fixed #6670 (Analysis failed when there are {} in LHS in compound assignment) 2015-07-27 13:44:35 +02:00
Daniel Marjamäki 35eb1a393d AST: handle concatening of strings better. this is not ideal but better. 2015-07-27 13:13:30 +02:00
Daniel Marjamäki 64b72bd6e5 Fixed #6227 (False positive (oppositeInnerCondition) - if (!dynamic_cast<>)) 2015-07-27 10:43:52 +02:00