67 Commits

Author SHA1 Message Date
Daniel Marjamäki
79ffe1d4fc Rename _tokenizer, _settings, _errorLogger 2018-06-16 16:10:28 +02:00
Daniel Marjamäki
f336c2efe7 Refactoring; Renamed Scope::classStart and Scope::classEnd 2018-04-27 22:36:30 +02:00
jrp2014
b6504c70ca Improve constness 2018-04-04 21:51:31 +02:00
Daniel Marjamäki
7e4dba6a7e Updated copyright year 2018-03-31 20:59:09 +02:00
Paul Fultz II
166e4cafcd Check for functions calls in sizeof calculations (#1111)
* Check for functions calls in sizeof calculations

* Use seperate message and id for sizeofFunction

* Check for overloads

* Using decltype with a function should not be an error

* Fix warning

* Fix false positives when running pass the close paren

* Fix test error

* Try to fix more false positives

* Traverse using astOperand2

* Only check first argument

* Update fixes from feedback from PR
2018-03-15 10:24:17 +01:00
Daniel Marjamäki
0d2171a553 astyle formatting 2018-03-12 13:43:04 +01:00
Daniel Marjamäki
31dd4ed787 use early continue 2018-03-12 12:50:33 +01:00
Daniel Marjamäki
c4caee6b18 Updated copyright year 2018-01-14 15:37:52 +01:00
Dmitry-Me
e4de220a2d Only check pointer that can be null at that point 2017-10-14 19:09:42 +03:00
Dmitry-Me
288ee96cc7 Avoid recomputing loop range end 2017-10-14 18:57:27 +03:00
Ayaz Salikhov
b8cd7dbb5c Use nullptr instead of 0 or NULL (#936) 2017-08-09 20:00:26 +02:00
Ayaz Salikhov
28aa939d69 iwyu - include what you use 2017-05-27 04:33:47 +02:00
PKEuS
b1f4bd7504 Refactorization: Reimplemented Settings::_enabled as a bitfeld instead of std::set (#7995) 2017-04-11 11:49:26 +02:00
PKEuS
cfac3b457d Several small refactorizations 2016-12-06 22:12:02 +01:00
Roberto Martelloni
28f1222dc2 CWE mapping of useAutoPointerMalloc, uselessCallsCompare, uselessCallsSwap, uselessCallsSubstr, uselessCallsEmpty, uselessCallsRemove, derefInvalidIterator, reademptycontainer, multiplySizeof, divideSizeof, stringLiteralWrite, incorrectStringCompare, literalWithCharPtrCompare, charLiteralWithCharPtrCompare, incorrectStringBooleanError, staticStringCompare, stringCompare, signConversion, truncLongCastAssignment, truncLongCastReturn, unusedFunction, unusedVariable, unusedAllocatedMemory, unreadVariable, unassignedVariable, unusedStructMember, postfixOperator, va_start_wrongParameter (#824)
Add an optional extended description…
2016-09-03 00:31:35 +02:00
Daniel Marjamäki
0162f33d3f CheckSizeof: allow division with sizeof(char) when byte count is expected. 2016-07-17 19:19:15 +02:00
Daniel Marjamäki
91e38f3eb9 Fixed #7582 (false positive: Division by result of sizeof(). strncpy() expects a size in bytes) 2016-07-17 15:22:14 +02:00
PKEuS
a808549af0 Support lambdas in simplifyCompoundAssignment (#7571) 2016-07-08 20:10:33 +02:00
Roberto Martelloni
87372ccd58 CWE mapping of sizeofForArrayParameter, sizeofForPointer, sizeofDivisionMemfunc, sizeofwithnumericparameter, sizeofsizeof, sizeofCalculation, sizeofVoid, sizeofDereferencedVoidPointer, arithOperationsOnVoidPointer (#810) 2016-07-08 09:06:55 +02:00
PKEuS
53e2cabdbb Properly support "break" in CheckVaarg::va_list_usage() (#7533)
Ran AStyle
2016-06-07 19:28:32 +02:00
Roberto Martelloni
f1c39dbda7 CWE mapping of stlIfStrFind, stlcstrReturn, stlcstrParam, stlSize, (#801)
StlMissingComparison, redundantIfRemove.
2016-06-05 18:24:06 +02:00
PKEuS
00e4f70fe3 Fixed false positives in CheckSizeof::checkSizeofForPointerSize() (#7518) 2016-05-26 21:25:29 +02:00
PKEuS
4bb99a7887 Improved CheckSizeof::checkSizeofForPointerSize():
- Support cast in front of malloc() call
- Support sizeof(type) pattern (#4428)
2016-05-22 22:29:52 +02:00
Daniel Marjamäki
5e10e680da CWE: refactoring. use constants instead of magic numbers. 2016-01-25 20:01:48 +01:00
Lauri Nurmi
996c9244d8 Update copyright year to 2007-2016. 2016-01-01 15:34:45 +02:00
Daniel Marjamäki
7f1b43e79c Use simpleMatch to fix travis build 2015-12-30 12:28:55 +01:00
Daniel Marjamäki
c0e8654649 Refactor void* checking. Use ValueType. 2015-12-30 11:48:20 +01:00
Daniel Marjamäki
0f9d90d2be Changed Copyrights. Removed my name. 2015-11-18 20:04:50 +01:00
PKEuS
9a879fc828 Fixed false positives with pointerSize being shown even if no sizeof() is used (#7100). 2015-11-07 13:19:06 +01:00
PKEuS
49f6231756 Fixed two issues in CheckSizeof::checkSizeofForPointerSize() 2015-11-07 09:35:30 +01:00
PKEuS
0ac89c8af2 Fixed internal warning 2015-11-06 22:21:39 +01:00
PKEuS
61b16909bd Fixed false negative pointerSize with member variables.
Fixed wrong comment in testcppcheck.cpp
2015-11-06 21:48:56 +01:00
Thomas Otto
7ba69cfd0a sizeofCalculation: skip if void-casted inside a macro (#6888) 2015-09-28 14:33:29 +02:00
PKEuS
fbbdfa85ca Revert "Fixed false negative #5815"
This reverts commit dc6c278d83527b711124b4856cff641b5f36d0e6.
2015-09-09 14:46:47 +02:00
PKEuS
dc6c278d83 Fixed false negative #5815 2015-08-31 14:12:19 +02:00
Alexander Mai
1c5e9e47c5 #6671 false positive: incorrect sizeofwithsilentarraypointer with reference to array. 2015-05-06 07:38:26 +02:00
Daniel Marjamäki
88f59ad7e8 Partial fix for #6656 (Allow that CWE is mapped for error message) 2015-04-25 17:48:11 +02:00
Matthias Krüger
42f0955e3f Move more setting checks out of loops and use const bools instead. Reorder a few related checks.
Follow up to eedcb6abcb9c905d5ef16fb6d5379bd1be9929c3 .
2015-04-10 14:31:19 +02:00
PKEuS
b2835051df Refactorization: Renamed Token::Match pattern %var% to %name%, implement new pattern %var% which is true if varId > 0. 2015-01-31 12:32:04 +01:00
Daniel Marjamäki
88e7b55a2d CheckSizeof: only report warnings when --enable=warning has been used 2015-01-06 15:20:42 +01:00
Daniel Marjamäki
ff11ba9847 Updated copyright year to 2015 2015-01-03 12:14:58 +01:00
Thomas Jarosch
dca65ce3da Fix FP if sizeof is used without parentheses on struct members
Right now we only support checking basic pointer types.
Pointers inside structs are not supported yet.

Consider the tokens "foo@1 . bar@2",
Token::Match( "sizeof ( %varid% )" ) won't match it.
Token::Match( "sizeof %varid%" ) did match it -> FP.
2014-12-22 09:44:08 +01:00
Alexander Mai
66d767b4b5 #6050 arithmetic on void** - fix false positive 2014-08-17 19:14:55 +02:00
PKEuS
5ddee75b5d Removed newline from divideBySizeofError message 2014-08-08 09:59:55 +02:00
PKEuS
5c238692e6 New check: Division by sizeof() as parameter to memset/memcpy/memmove/etc. as they expect a size in bytes (#5698)
Refactorizations in sizeof checking:
- Changed severity of sizeofwithsilentarraypointer to warning
- Made pointerSize message conclusive - there seems to be no reason for inconclusive
2014-08-08 09:49:09 +02:00
Alexander Mai
ad1662a201 #5875 fix 'lib/checksizeof.cpp:142:26: runtime error: member call on null pointer of type 'Token'. Improve error handling in CheckSizeof::checkSizeofForPointerSize() 2014-06-01 22:18:17 +02:00
PKEuS
1fc1ff1993 Moved implementation of two functions to new file check.cpp -> Don't include <iostream> everywhere 2014-05-24 12:50:04 +02:00
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
PKEuS
5c566e838c Fixed false positive "multiplySizeof" in TortoiseSVN 2014-05-19 20:57:13 +02:00
PKEuS
09e03fa6ef Fixed some complaints of PVS Studio 2014-05-19 14:37:54 +02:00