Commit Graph

6255 Commits

Author SHA1 Message Date
Alexander Mai efab840b50 #5230 Explicit reinterpret_cast should not give a warning. Lower all invalidPointerCast messages to 'portability' 2014-09-06 13:09:02 +02:00
Alexander Mai 29b46cb505 #6132 crash: daca: kvirc CheckOther::checkRedundantAssignment() 2014-09-05 20:03:34 +02:00
Martin Ettl 8a15486370 Fixed CID-1234716: Dereference after null check in lib/checkio.cpp 2014-09-01 09:00:05 +02:00
PKEuS e8f7279039 Refactorization: Moved detection of STL strings to SymbolDatabase 2014-09-05 12:03:08 +02:00
PKEuS 4940da06c0 Calculate checksum only if necessary (#6129) 2014-09-05 11:05:21 +02:00
Simon Martin eeeb816db9 Ticket #6103: Simplify "new (type)" constructs into "new type" to avoid confusion upon certain input. 2014-09-05 08:02:18 +02:00
PKEuS 8c24553229 Support inherited member variables in setVarId (#4101) 2014-09-04 22:22:09 +02:00
Alexander Mai 5a96413220 #6127 crash on patch(?)-".c" file. Avoid segfault. 2014-09-04 21:28:18 +02:00
Alexander Mai 65f599bd9e Fix version number macros 2014-09-04 21:18:15 +02:00
Daniel Marjamäki b3e4abd82a Fixed Cppcheck warnings 2014-09-04 18:08:56 +02:00
Daniel Marjamäki 05617d7285 Fixed #6118 (False positive: divide by zero - if condition not evaluated properly) 2014-09-04 17:52:14 +02:00
PKEuS 800b57d87e Merge pull request #415 from Dmitry-Me/reducePatternsDuplication
Reduce patterns duplication
2014-09-04 07:46:59 +02:00
PKEuS 5d0aa15002 Merge pull request #416 from Dmitry-Me/removeDuplicateChecks
Remove duplicate checks
2014-09-04 07:46:45 +02:00
PKEuS e4a81f9666 Improved checksum algorithm to fix configurations being purged by coincidence (#6126):
- Better distribution of values by rotating the bits of the checksum for each token
2014-09-03 23:10:38 +02:00
Alexander Mai 270f59e76a Fix doxygen warning and astyle formatting 2014-09-03 20:38:41 +02:00
Dmitry-Me 68d650e9ac Remove duplicate checks 2014-09-03 14:17:34 +04:00
PKEuS 6d27ca6c9a Fixed SymbolDatabase if unnamed struct is casted and returned (#6125) 2014-09-03 11:15:05 +02:00
PKEuS bf2f76e70c Detect and purge duplicate configurations by calculating a checksum. 2014-09-02 22:35:52 +02:00
Alexander Mai a632f68345 #6122 segmentation fault (invalid code) in in valueFlowForLoop2. Simple fix and testcase. 2014-09-02 19:41:50 +02:00
Alexander Mai 45dc4ca6be Fix compiler warning. Re-order if-expression for performance reasons 2014-09-02 19:18:30 +02:00
Dmitry-Me 46d24c7bfb Reduce patterns duplication 2014-09-02 19:51:22 +04:00
Dmitry-Me 7342a81ea7 Minor refactorings. rename token. cleanup if/else. 2014-09-02 16:10:51 +02:00
PKEuS a52401cf1b Fixed some compiler warning about signed/unsigned conversions. 2014-09-02 11:44:51 +02:00
PKEuS 3e65cb446e Remove "auto" keyword (storage class specifier) from C++03 and C code (#4990). 2014-09-02 11:21:47 +02:00
PKEuS 2d608890a5 Improved message 'mismatchSize' (#4167) 2014-09-02 09:38:40 +02:00
PKEuS ddc19febb5 Merge pull request #413 from Dmitry-Me/improveCStyleCastsDetection
Improve C style casts detection
2014-09-02 08:07:53 +02:00
PKEuS 428f7a6f26 Attempt to fix crashs on clang test suite. 2014-09-01 23:29:15 +02:00
PKEuS 00044aabb0 Handle ternary operator in redundantAssignment check (#5964) 2014-09-01 23:16:52 +02:00
Alexander Mai a4ff30301a #5805 'Passing value -1.0 to sqrt() leads to undefined result' is incorrect. Degrade wrongmathcall from error to warning, since it deals with implementation-defined behaviour 2014-09-01 19:31:32 +02:00
PKEuS 80df3dc642 Disabled several checks and simplifications for C code, if they are C++-only. Do not match arguments for C code, since there can't be overloads. 2014-09-01 18:43:24 +02:00
amai2012 9bc0e3afd6 Merge pull request #412 from Dmitry-Me/moveChecksEarlier
Move cheap checks earlier to avoid more expensive ones
2014-09-01 17:49:45 +02:00
Dmitry-Me f937dde1e0 Improve C style casts detection 2014-09-01 16:40:28 +04:00
PKEuS 0995b85c09 Attempt to fix crashs when self-checking cppcheck introduced by previous commit 2014-09-01 14:12:43 +02:00
PKEuS 40e5dab9dc Refactorization in checkmemoryleak.cpp:
- Use Library to detect noreturn/notnoreturn functions
- Removed realloc from std.cfg as long as there is no proper way to configure such functions
2014-09-01 13:54:33 +02:00
PKEuS c92230dfee Fixed crash on garbage code introduced by recent commit. 2014-09-01 12:41:30 +02:00
PKEuS 20a066bb14 Run unreachableCode checking only on executable scopes (#5789) 2014-09-01 11:29:39 +02:00
PKEuS b5e064e737 Fixed unreachableCode message if a lambda is returned (#6008). 2014-09-01 11:10:42 +02:00
Dmitry-Me a6219adc9b Move cheap checks earlier to avoid more expensive ones 2014-09-01 12:52:27 +04:00
PKEuS 353a9e9a64 Bailout for duplicateBranch check if branches are empty (#5354) 2014-09-01 10:19:14 +02:00
PKEuS e35329aba3 Fixed reporting of unmatched suppressions for unusedFunction (#4946) 2014-09-01 10:13:03 +02:00
PKEuS 47764321f2 Several fixes to invalidScanfFormatWidthError():
- Different IDs for different messages (#5809)
- severity is warning, not style, so check _settings->isEnabled() properly
- Removed never shown message text
2014-09-01 09:33:58 +02:00
amai2012 d1d3c24f3e Merge pull request #411 from Dmitry-Me/moveDeclarationsCloserToWhereTheyreNeeded
Move declarations closer to where they're first used
2014-09-01 08:48:46 +02:00
PKEuS 59cccb83ce Reimplemented version.h:
- Use macros to form version number and string. CPPCHECK_MAJOR, CPPCHECK_MINOR and CPPCHECK_DEVMINOR now contain the parts of the version number.
- "dev" status is now detected by comparison of CPPCHECK_MINOR and CPPCHECK_DEVMINOR, version string created accordingly.

Fixed two comments.
2014-09-01 08:48:25 +02:00
Dmitry-Me 9199dde560 Move declarations closer to where they're first used 2014-09-01 10:05:59 +04:00
PKEuS 288c94a47f Extended Message "fflushOnInputStream" to files opened for reading. 2014-08-31 21:03:33 +02:00
PKEuS b07f61170d Changed severity of fflushOnInputStream to portability: The behaviour of fflush(stdin) is defined on Linux. 2014-08-31 20:56:05 +02:00
PKEuS e1bc5f5248 Fixed false positive #4788 (break; in BOOST_FOREACH) 2014-08-31 20:40:52 +02:00
PKEuS 8722bba52a Fixed false positive #4648 2014-08-31 20:33:27 +02:00
PKEuS 3ccdae78ba Support __declspec(property) (#4700) 2014-08-31 20:17:18 +02:00
PKEuS b8918906e6 Fixed false positive #5466 2014-08-31 19:46:30 +02:00
PKEuS 8f4662de92 No unused variable messages about std::unique_ptr|shared_ptr|auto_ptr (#4355) 2014-08-31 19:18:02 +02:00
PKEuS 78932094c8 Fixed crash on garbage code #6106 2014-08-31 12:12:03 +02:00
PKEuS 9733a751ec SymbolDatabase: Several small refactorizations 2014-08-31 11:27:32 +02:00
PKEuS 862b18e0e2 SymbolDatabase: New scope type eLambda 2014-08-31 10:21:27 +02:00
Daniel Marjamäki 97005d7d87 remove redundant declaration of isSameExpression. fixes gcc compiler warning. 2014-08-30 19:23:31 +02:00
Dmitry-Me eace67ee1c Use logical instead of bitwise operators to save cpu 2014-08-30 11:35:25 +02:00
PKEuS e9fdfc6cd0 Fix on checking side for #6099 2014-08-30 11:18:48 +02:00
Daniel Marjamäki 3ac5f16668 Makefile: generate new Makefile with dmake 2014-08-29 18:32:50 +02:00
PKEuS 06a92e8981 Moved several condition checks from checkOther to checkCondition (former checkAssignIf) 2014-08-29 17:06:46 +02:00
Daniel Marjamäki eeeb8aa0a7 ValueFlow: Fix crash for lambda function 2014-08-27 17:27:34 +02:00
Daniel Marjamäki 2dc3945017 astyle formatting 2014-08-27 17:27:14 +02:00
Daniel Marjamäki ae8a20b197 Fixed #6086 (False positive: valueFlow, conditional code returns) 2014-08-27 16:59:18 +02:00
amai2012 c242faf45e Merge pull request #408 from Dmitry-Me/continueEarlyToOmitUnneededActions2
Continue early to omit unneeded operations
2014-08-27 16:36:19 +02:00
Matthias Krüger cd33d784d5 run dmake 2014-08-27 09:45:50 +02:00
PKEuS eba8c6f6c5 Refactorization:
- Added missing separating comments between checks in checkother.cpp
- Moved checks related to strings into own file
2014-08-27 09:42:09 +02:00
Dmitry-Me 44ba0ca347 Continue early to omit unneeded operations 2014-08-27 11:32:14 +04:00
Daniel Marjamäki 23ec9fea8e Fixed #6024 (False positive (nullPointer) using in 1.66) 2014-08-26 18:48:11 +02:00
PKEuS 6a4319f050 Improved simplifications:
- Rearranged their order to solve problems with typedefs. If we simplify chained declarations before typedef parsing, we have less complex expressions to deal with (#4777).
- Fixed detection of variables hiding enums
2014-08-26 15:21:19 +02:00
PKEuS a8dc17c1d9 Fixed false positive #5566. 2014-08-26 11:29:26 +02:00
PKEuS 5e2ea8b6cd Fixed crash #6089 by using information stored in Variable instead of accessing Variable::nameToken 2014-08-26 11:08:21 +02:00
PKEuS c15ead7855 Merge pull request #406 from Dmitry-Me/removeCodeDuplicationCleanupVariableNames
Reduce code duplication, cleanup variable names
2014-08-26 10:42:22 +02:00
PKEuS 2326e78381 Fixed #6058: Don't detect class with unknown macro as variable.
Commented out crashing unit test tokenize33() in VS12
2014-08-26 10:40:00 +02:00
amai2012 e02741c82c #5780 Crash on template code below Tokenizer::setVarId(). Fix several crashes with same location. 2014-08-26 09:12:10 +02:00
Daniel Marjamäki cd75b2d83d AST: fix hang for code 'MACRO({.x=1,.y=2})' 2014-08-25 19:10:16 +02:00
Dmitry-Me d72b98bbaa Reduce code duplication, cleanup variable names 2014-08-25 11:49:17 +04:00
Dmitry-Me 67ea470275 Break loop early, cleanup declarations 2014-08-24 20:17:41 +02:00
Daniel Marjamäki 789b01aad2 ValueFlow: fixed one more hang in valueFlowForward 2014-08-24 08:50:01 +02:00
Daniel Marjamäki 1060b30e52 AST: better AST for placement new expression 'new (a) MyClass;' 2014-08-23 13:21:36 +02:00
PKEuS 0dc4b75565 Fixed crash on invalid code #6080 2014-08-23 12:36:42 +02:00
PKEuS 7f2be2f57c Fixed template bracket linkage in while loop simplification
Ran AStyle
2014-08-23 12:28:54 +02:00
amai2012 976966fe81 #5639 String literal compared with char buffer in a struct. 2014-08-23 09:41:40 +02:00
PKEuS f01d7543f6 #6077: Don't warn about memcpy/memmove on class containing floats. 2014-08-20 15:12:53 +02:00
PKEuS c678937538 Fixed more false positives of #6056:
- Implemented nextArgument() for usages before < and > are linked
- slightly optimized nextArgument()
2014-08-20 15:02:52 +02:00
PKEuS 8188578cf2 SymbolDatabase: Fixed handling of nested types for function arguments
Removed unnecessary loops between var->typeStartToken() and var->typeEndToken()
2014-08-19 11:55:00 +02:00
PKEuS 69b7f91034 Support :: in some more places 2014-08-19 11:36:32 +02:00
PKEuS 5d50e7e9ae Changed heuristics to detect variable constructor initialization syntax (#6071) 2014-08-19 11:06:52 +02:00
PKEuS 96c5983409 Merge pull request #404 from Dmitry-Me/continueEarlyToOmitUnneededActions
Continue early to omit unneeded actions
2014-08-19 09:45:54 +02:00
Daniel Marjamäki b6355b991f Fixed #6070 (false positive: Array 'array[8192]' accessed at index 8192, which is out of bounds) 2014-08-19 07:03:00 +02:00
Dmitry-Me 93b5b28c3d Continue early to omit unneeded actions 2014-08-19 07:58:45 +04:00
PKEuS eac2d58c9e Fixed fix for #6056 2014-08-18 20:40:43 +02:00
PKEuS 49bafa10a0 Merge pull request #402 from Dmitry-Me/emiminateDuplicateStatements
Remove duplicate return statements.
2014-08-18 18:39:46 +02:00
Daniel Marjamäki b2288e5ada Fixed #6022 (Defect: False positive due to bug in determining bounds of for loop 'for (i = 2; i < 1; ++i)') 2014-08-18 16:45:22 +02:00
Dmitry-Me 443e846b2e Remove duplicate return statements. 2014-08-18 16:02:35 +04:00
Dmitry-Me a386fbb665 Avoid mutually exclusive checks 2014-08-18 14:30:52 +04:00
Dmitry-Me 120e8c0674 Make loop termination more explicit. 2014-08-18 14:00:25 +04:00
PKEuS 5483c8ed5e Removed obsolete function from checkNullPointer 2014-08-18 11:42:50 +02:00
PKEuS e7754be316 Fixed #6056 - properly detect member functions in setVarId() 2014-08-18 11:07:56 +02:00
PKEuS a69860eb70 Fixed false positive #6066: va_list may be used after being copied. 2014-08-18 10:40:39 +02:00
PKEuS 5c54f8d0d8 Support namespaces and static member variables in setVarId (only one depth) (#6061) 2014-08-18 10:25:30 +02:00
PKEuS 0bf7b03f96 Refactorization: Support :: in some places in checkother.cpp 2014-08-18 10:25:30 +02:00