45 Commits

Author SHA1 Message Date
Paul Fultz II
aaeec462e6 Re-enable valueFlowSubFunction (#2063)
* Re-enable valueFlowSubFunction

* Formatting

* Skip ternary operators in subfunctions

* Fix test with iostreams

* Fix FP with multiple parameters
2019-08-05 16:26:32 +02:00
Rikard Falkeborn
2a17e624d9 Overlapping sprintf, improve handling of casts (#1945)
* Overlapping sprintf, improve handling of casts

If there is a cast of the argument buffer, cppcheck would print out the
expression including the cast, which looks a bit strange to talk about

    Variable (char*)buf is used as...

Instead, only print the variable name without the cast.

Also, handle arbitrary many casts (the previous code only handled one).
Multiple casts of the input arguments is probably an unusual case in
real code, but can perhaps occur if macros are used.

* Fix printing of variable

... and add a test.

* Simplify testcase
2019-07-05 12:27:39 +02:00
Rikard Falkeborn
295153df72 Checkstring fixes (#1783)
* teststring.cpp: Fix ternary syntax in tests

* stringLiteralWrite: Add tests wide character and utf16 strings

* suspiciousStringCompare: Add test with wide character string

* strPlusChar: Handle wide characters

* incorrectStringCompare: Add test with wide string

* Suspicious string compare: suggest wcscmp for wide strings

* deadStrcmp: Extend to handle wide strings

* sprintfOverlappingData: Print name of strcmp function

* Conversion of char literal to boolean, add wide character tests

* Conversion of char literal to boolean, fix ternary
2019-04-06 06:54:38 +02:00
Daniel Marjamäki
3dc34f1515 Disable all simplified checks 2019-03-16 09:17:50 +01:00
Daniel Marjamäki
bd7790fd8c Update copyright year 2019-02-09 07:24:06 +01:00
Daniel Marjamäki
8dd641b8be Use OVERRIDE in test 2019-01-12 15:45:25 +01:00
Daniel Marjamäki
bc34f0239d Disable the subfunction value flow analysis. It does not work well and needs to be rewritten. There are false positives. 2018-12-18 14:36:49 +01:00
Daniel Marjamäki
be4ae66e36 Fix wrong message 2018-08-12 08:01:15 +02:00
Daniel Marjamäki
f2e7071922 Fix FP, conversion of char literal '\0' to boolean is not true 2018-08-08 19:04:10 +02:00
Daniel Marjamäki
77b653bf94 Clarify warnings when char literals are converted to bool in conditions 2018-07-21 18:40:06 +02:00
Daniel Marjamäki
45379a3aa6 Updated copyright year for modified files
[ci skip]
2018-06-10 22:07:21 +02:00
IOBYTE
ce50df8047 Fix override warnings. (#1234) 2018-05-15 16:37:40 +02:00
Daniel Marjamäki
c4caee6b18 Updated copyright year 2018-01-14 15:37:52 +01:00
Daniel Marjamäki
d292434e76 Try again to clarify warning message for new strcmp() checker 2017-12-13 15:28:50 +01:00
Daniel Marjamäki
3f36d4b5f4 try to clarify error message 2017-12-11 22:10:00 +01:00
Daniel Marjamäki
43db6147d3 astyle formatting
[ci skip]
2017-11-27 23:32:20 +01:00
Daniel Marjamäki
f28d5e91ac Fixed #8251 (Condition: bug when there are more than 2 strcmp() on same buffer (tricky)) 2017-11-27 12:55:20 +01:00
Ayaz Salikhov
28aa939d69 iwyu - include what you use 2017-05-27 04:33:47 +02:00
Daniel Marjamäki
d89baee1f6 teststring: remove invalid newlines from string literals 2017-05-18 21:50:45 +02:00
Daniel Marjamäki
0e785e435e charLiteralWithCharPtrCompare: Improved warning to catch any char literal 2016-10-09 11:39:20 +02:00
PKEuS
644a216394 Fixed two false positives related to char arrays initialized by a literal:
- Run check for writing to string literals on non-simplified token list (#7283)
- Run buffer overrun checking for string literals on non-simplified token list (https://sourceforge.net/p/cppcheck/discussion/general/thread/2c33dfc5/)
2016-07-07 19:38:15 +02:00
PKEuS
cc8c498ebb Moved a few tests to testgarbage.cpp 2016-02-04 09:10:20 +01:00
Daniel Marjamäki
8e2f7812fd CheckString: Fix FP when macros are used. 2016-01-13 20:32:40 +01:00
Lauri Nurmi
996c9244d8 Update copyright year to 2007-2016. 2016-01-01 15:34:45 +02:00
Daniel Marjamäki
0022ce8075 Refactor handling of char constants 2015-11-20 10:10:38 +01:00
Daniel Marjamäki
0f9d90d2be Changed Copyrights. Removed my name. 2015-11-18 20:04:50 +01:00
Philipp Kloke
06c20252fa Added dot at end of stringLiteralWrite message 2015-10-19 09:01:21 +02:00
PKEuS
3a5cef8a7e Refactorization: Improved usage of Settings instances in test suite 2015-10-07 18:40:03 +02:00
PKEuS
07b661ef62 Refactorization: Improved handling of preprocessor in test suite
- Set Preprocessor::macroChar to '$' once in the beginning to avoid problems when changing the order of tests
- Removed Preprocessor usage from where it is not required
- Fixed a TODO in testuninitvar.cpp
2015-10-07 14:18:57 +02:00
Simon Shanks
9910c1fa0c Fixed #6617 (preprocessor performance improvement) 2015-07-24 13:30:41 +02:00
Daniel Marjamäki
e36cc9f6d9 stringLiteralWrite: Updated error message 2015-06-05 14:34:13 +02:00
Daniel Marjamäki
e837bad01d Fixed false positive in new stringLiteralWrite checker 2015-05-03 12:34:27 +02:00
Daniel Marjamäki
666377da1c Updated error message for stringLiteralWrite 2015-05-03 10:48:28 +02:00
Daniel Marjamäki
9d31afb663 Fixed #1748 (Undefined Behavior: Modification of string literal) 2015-05-03 10:44:40 +02:00
PKEuS
bc5132e0ac Refactorization: Moved declaration of errout, ... to testsuite.h, uniformized style 2015-03-11 22:54:43 +01:00
PKEuS
21cb0cfd60 Take simplifyIfNotNull and simplifyIfNot out of simplifyTokenList1 (first step for #6072) 2015-01-31 20:12:02 +01:00
orbitcowboy
4c2e42a52c alwaysTrueFalseStringCompare: Added more test cases to ensure no FP appears. 2015-01-07 08:38:39 +01:00
orbitcowboy
c07b07b8fe Fixed #6415 - FP stringCompare memcmp(ptr, ptr+offset, length). 2015-01-07 08:30:05 +01:00
Daniel Marjamäki
ff11ba9847 Updated copyright year to 2015 2015-01-03 12:14:58 +01:00
Martin Ettl
465f74b3bb Fixed #6398 - false negative: (warning) Unnecessary comparison of static strings. 2015-01-02 12:58:04 +01:00
orbitcowboy
d53f2f583c Fixed #6388: Support strncasecmp 2015-01-02 14:04:55 +01:00
Daniel Marjamäki
051d42ae6b astyle formatting 2014-11-20 14:20:09 +01:00
orbitcowboy
f5d804f71a running astyle 2014-11-20 10:13:03 +01:00
PKEuS
6a5eda51d3 Removed redundant suppression code in teststring.cpp 2014-08-29 17:02:13 +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