Daniel Marjamäki
9ff3e85899
Added --cppcheck-build-dir flag
2016-10-29 12:18:11 +02:00
Daniel Marjamäki
324f68ca36
rename function
2016-10-28 12:10:19 +02:00
Daniel Marjamäki
9c1a08ca84
move std function information from checkstl to std.cfg
2016-10-27 19:24:24 +02:00
Daniel Marjamäki
0b76aa0f24
checkstl: refactoring. make data static instead of anonymous.
2016-10-27 18:54:15 +02:00
Daniel Marjamäki
892596681b
Try to make Travis happy
2016-10-27 11:53:37 +02:00
Daniel Marjamäki
f6a5f6bb61
CheckStl::mismatchingContainers: Refactoring, use Library instead of hardcoding
2016-10-27 10:25:45 +02:00
Harald Scheidl
0de47f709e
Fixed #7755 (false positive: member variable is not initialized in the constructor)
2016-10-26 10:39:53 +02:00
Robert Reif
4216b26b8c
Fixed #7775 (crash at valueFlowSetConstantValue)
2016-10-26 10:36:02 +02:00
Daniel Marjamäki
08a618c476
Library: Add <iterator> element in <function> <arg>. Not used by any checks yet.
2016-10-25 23:07:18 +02:00
Daniel Marjamäki
f973a9a9d5
SymbolDatabase: Refactoring handling of library-function return type
2016-10-23 23:20:36 +02:00
Daniel Marjamäki
c8f831b70d
Library: Allow that type of function return is specified. Fixes #7668 .
2016-10-23 23:04:15 +02:00
Robert Reif
f25d205999
Fixed #7767 (SymbolDatabase: function not analysed when unknown macros are in front of function definition)
2016-10-22 22:29:18 +02:00
Daniel Marjamäki
8a0f3009ff
ValueFlow: inner and outer function return values
2016-10-22 17:22:57 +02:00
Daniel Marjamäki
77cd6c194f
ValueFlow: Set 'known' property for function return values
2016-10-22 12:24:15 +02:00
Daniel Marjamäki
86a620a3b4
ValueFlow: Better handling of function return value when there are 0 parameters
2016-10-20 16:10:55 +02:00
Daniel Marjamäki
a85eacc157
cstyleCast: don't warn about '(const Variable *)nullptr'
2016-10-18 22:56:33 +02:00
Daniel Marjamäki
efa3aba32a
Remove Tokenizer::simplifyNull()
2016-10-18 21:44:02 +02:00
Daniel Marjamäki
9cea2d6dfa
Tokenizer: Removed simplifications of standard functions that should be handled through configuration.
2016-10-18 19:25:58 +02:00
Dmitry-Me
d2e667ae7b
Put apostrophes consistent with other similar messages
2016-10-18 15:45:08 +03:00
Daniel Marjamäki
fae4a4dacf
Fixed #7668 (ValueFlow: return value from abs)
2016-10-17 13:05:19 +02:00
Daniel Marjamäki
1b7766c7bd
astyle formatting
2016-10-16 19:03:14 +02:00
Daniel Marjamäki
90ed7634b8
MathLib: fix for octal char literal '\200'
2016-10-16 13:42:20 +02:00
Daniel Marjamäki
5175bf88d6
Platform: Fix type limits calculations. sizeof=>bit
2016-10-16 12:00:33 +02:00
Daniel Marjamäki
c70987b727
ValueType: fix type of integer literals
2016-10-16 11:36:22 +02:00
Daniel Marjamäki
7fb812f415
Fixed #7752 (ValueFlow: no conditional value, probably because condition is in ternary operator and/or in function call.)
2016-10-16 07:15:28 +02:00
Daniel Marjamäki
ad74421526
Fixed #7756 (ValueFlow: fix bug in valueAfterAssign, same variable in lhs and rhs)
2016-10-15 19:09:50 +02:00
Daniel Marjamäki
d09a8dde57
Improved char literal handling. In the 'normal' tokenlist these should not be simplified to integer literals.
2016-10-12 10:20:24 +02:00
Miika-Petteri Matikainen
26816ed954
Fixes preprocessor regression causing hang
...
Cppcheck 1.76 introduced a regression in preprocessor which causes
the following code to hang:
$ cat > test.c << EOF
#ifndef Y
#else
#endif
EOF
$ cppcheck -D BAR --force test.c
Checking test.c ...
^C
This used to work with version 1.75. Git bisect reveals that this
regression was caused by commit:
ff036c8742
This commit fixes the regression by avoiding infinite loop in
hasDefine(). If cfg is empty string "", we can skip the whole loop
and exit early.
2016-10-11 19:56:13 +03:00
orbitcowboy
fe08abb76f
Improved Doxygen comments. There are no functional changes.
2016-10-11 13:51:46 +02:00
PKEuS
1715969f6f
Support prefix-increment/decrement in CheckAutoVariables::assignFunctionArg() ( #3177 )
2016-10-10 21:34:40 +02:00
PKEuS
1227a3f596
Improved check: Complain if a variable is modified but not used again
2016-10-10 21:27:40 +02:00
Harald Scheidl
04421f5601
check if AST is not null before accessing it
2016-10-09 18:21:23 +02:00
Daniel Marjamäki
e0e53cbd66
alwaysTrueFalse: Don't warn when condition is 0 or 1
2016-10-09 15:20:43 +02:00
Daniel Marjamäki
af5dd2c29e
New check: Pointer overflow (null pointer subtracted)
2016-10-09 15:15:29 +02:00
Harald Scheidl
58eb644003
Improved Check: Warn about number and char literals in boolean expressions ( #7750 )
2016-10-09 13:21:00 +02:00
Daniel Marjamäki
0e785e435e
charLiteralWithCharPtrCompare: Improved warning to catch any char literal
2016-10-09 11:39:20 +02:00
PKEuS
e417e15567
Set version to 1.76.99/1.77 dev
2016-10-09 10:33:03 +02:00
PKEuS
54959d1932
CheckLeakAutoVar: Distinguish between new and new[] ( #888 )
2016-10-09 10:28:19 +02:00
Daniel Marjamäki
0afe745c94
1.76: Update version
2016-10-08 18:40:36 +02:00
PKEuS
e1a21a8bb1
Fixed internal warnings
2016-10-08 11:34:25 +02:00
Harald Scheidl
9f1b70fa04
new can initialize memory, don't warn in this case ( #7623 )
2016-10-08 10:03:09 +02:00
Daniel Marjamäki
bcbc8ef017
Fixed #7747 (Syntax error when setting the bitcount of an enum defined inside a struct)
2016-10-04 15:57:43 +02:00
Daniel Marjamäki
02402eeea4
Make simplifyBitfields() a bit more strict
2016-10-04 15:33:50 +02:00
Boris Egorov
a32f61ae4a
Fixed #7139 (ValueFlow: Missed shift operation in for expression)
2016-10-04 13:09:33 +07:00
Harald Scheidl
ba6cda9c86
Fixed #7740 (Tokenizer::setVarId: Function declaration does not start with 'return')
2016-10-03 10:02:18 +02:00
PKEuS
4df8bf9c39
Added missing #include "config.h" in pathmatch.h
2016-10-02 15:51:21 +02:00
PKEuS
29e1fe136a
Fixed Visual Studio build after pathmatch.h/cpp was moved to lib, fixed compiler errors about getcwd
2016-10-02 15:48:03 +02:00
Daniel Marjamäki
fff8aa8590
dmake: pathmatch was moved from cli to lib
2016-10-02 13:32:39 +02:00
Daniel Marjamäki
03d6d34396
Fixed #4399 (Exclude directory with absolute path does not work)
2016-10-02 13:02:29 +02:00
Daniel Marjamäki
3605457cbe
CLI: Fix exclude of absolute path. #4399
2016-10-02 12:38:44 +02:00
Daniel Marjamäki
91d97c556d
Path: Add methods Path::isAbsolute() and Path::getCurrentPath()
2016-10-02 12:06:55 +02:00
Simon Martin
3f415673e4
Ticket #7541 : Properly keep track of namespace definition end markers when there are multiple of them.
2016-10-01 20:46:33 +02:00
orbitcowboy
ee0602cd21
Merge pull request #832 from simartin/ticket_7068
...
Ticket #7068 : Treat "memset(&this->member, ..." as member initialization
2016-10-01 15:36:32 +02:00
Simon Martin
dc61b6342d
Ticket #7068 : Treat "memset(&this->member, ..." as member initialization.
2016-10-01 13:46:58 +02:00
Daniel Marjamäki
6f133a397b
Fixed #3492 (GUI: after edit project recheck use old settings)
2016-10-01 13:08:58 +02:00
Daniel Marjamäki
9dcad7115a
Fixed #7743 (--config-exclude no longer supported)
2016-09-30 08:00:06 +02:00
Boris Egorov
0154d39bf6
Show struct member in unsignedLessThanZeroError warning
...
Before:
[/tmp/test.c:8]: (style) Checking if unsigned variable '.' is less than zero.
[/tmp/test.c:12]: (style) Checking if unsigned variable '.' is less than zero.
After:
[/tmp/test.c:8]: (style) Checking if unsigned variable 'd.n' is less than zero.
[/tmp/test.c:12]: (style) Checking if unsigned variable 'd.n' is less than zero.
2016-09-22 08:03:30 +07:00
Matthias Krüger
2f39ed6f88
redundantPointerOpError: put pointer name into single quotes in the error message.
2016-09-16 22:18:24 +02:00
Daniel Marjamäki
6b55acd7af
CheckIO: Changed severity for '.. aka' warnings to portability. If type is compatible then it's just a possible portability issue.
2016-09-11 17:05:01 +02:00
Simon Martin
f816fb811e
Ticket #7680 : Properly handle ::delete during memory leak checks.
2016-09-10 14:55:50 +02:00
Daniel Marjamäki
ac1a869d60
unused struct members: don't warn about packed structs ( #3088 )
2016-09-05 17:27:12 +02:00
Daniel Marjamäki
4d22ada078
Fixed #5839 (False positive: Function can be const, if this is passed to functor)
2016-09-04 16:36:04 +02:00
Daniel Marjamäki
ce7bfba416
Refactoring CheckClass::checkConst. Use continue.
2016-09-04 16:06:54 +02:00
Daniel Marjamäki
54db79305b
Redo refactoring of CheckClass::checkConst.
2016-09-04 16:02:59 +02:00
Daniel Marjamäki
530a05e40e
Refactoring CheckClass::checkConst. Use continue.
2016-09-04 15:38:56 +02:00
Daniel Marjamäki
03a6282ab3
Fixed #7338 (Library: method in base class)
2016-09-04 14:14:21 +02:00
Daniel Marjamäki
60f22bd4ee
Fixed #7477 (False positive 'Assigned value is never used' in multithreaded context)
2016-09-03 20:38:36 +02:00
Daniel Marjamäki
b97bdb5300
bump simplecpp to rev b50ced8ac14f8debab9e85e78036f881ff2b3965
2016-09-03 12:29:45 +02: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
0e48625ff4
Fixed false positive when self-checking Cppcheck 'boolean result used in bitwise operation' when using boolean variables.
2016-08-29 04:09:36 +02:00
Daniel Marjamäki
24c6d92667
astyle formatting
...
[ci skip]
2016-08-29 04:08:38 +02:00
Daniel Marjamäki
939b42df06
Fixed #7134 (False positive redundantAssignment - assignment to local variable of unknown type)
2016-08-29 03:48:08 +02:00
Daniel Marjamäki
18cab009c1
Fix Token::Match pattern
2016-08-28 19:25:57 +02:00
Daniel Marjamäki
254e5675ff
Fixed #7573 (Tokenizer: FP caused by constant folding)
2016-08-28 19:11:05 +02:00
Daniel Marjamäki
fee0e4edfa
Fixed #7177 (MathLib: Does not handle '\xF6' properly)
2016-08-28 11:37:05 +02:00
Robert Reif
bf7ef56ef5
Fixed #7713 (False positive: %hhu in format string (no. 1) requires 'unsigned char' but the argument type is 'signed int'.)
2016-08-26 19:47:36 +02:00
orbitcowboy
87409ea6b3
Running astyle; Improved testing of std::find; std.cfg: Added support for istream::read and ifstream::read.
2016-08-25 19:17:07 +02:00
Roberto Martelloni
1db24ee070
CWE mapping of signedCharArrayIndex, unknownSignCharArrayIndex, suspiciousCase, suspiciousEqualityComparison, duplicateBranch, duplicateExpressionTernary, suspiciousSemicolon, incompleteArrayFill, redundantPointerOp, unusedLabelSwitch, unusedLabel, unknownEvaluationOrder, stlIfFind, useAutoPointerCopy
2016-08-25 15:40:23 +01:00
amai2012
ece478979b
Merge pull request #821 from boos/cwe-mapping-11
...
CWE mapping of invalidLengthModifierError, leakUnsafeArgAlloc, nullPointerDefaultArg, nullPointerRedundantCheck, raceAfterInterlockedDecrement.
2016-08-24 20:44:06 +02:00
Roberto Martelloni
01ee9ee5e6
CWE mapping of invalidLengthModifierError, leakUnsafeArgAlloc, nullPointerDefaultArg, nullPointerRedundantCheck, raceAfterInterlockedDecrement.
2016-08-24 15:37:14 +01:00
Dmitry-Me
667038a402
Merge overlapping patterns
2016-08-24 15:10:39 +03:00
Robert Reif
6043a27065
Fixed #7710 (%h and %hh printf type size specifiers not supported)
2016-08-24 12:47:11 +02:00
Daniel Marjamäki
706877df2d
astyle formatting
...
[ci skip]
2016-08-24 12:43:45 +02:00
amai2012
7cc2124176
Fix crash in parsing solution/project
2016-08-24 12:17:54 +02:00
amai2012
c0401c2ef5
Merge pull request #820 from boos/cwe-mapping-10
...
CWE mapping of functionConst, functionStatic, initializerList, badBitmaskCheck, knownConditionTrueFalse, invalidTestForOverflow, unhandledExceptionSpecification, coutCerrMisusage, invalidPrintfArgType_int
2016-08-24 09:48:01 +02:00
Roberto Martelloni
4c6f4f6708
CWE mapping of functionConst, functionStatic, initializerList, badBitmaskCheck, knownConditionTrueFalse, invalidTestForOverflow, unhandledExceptionSpecification, coutCerrMisusage,
...
invalidPrintfArgType_int
2016-08-23 16:48:36 +01:00
Dmitry-Me
cd6aa27010
Clarify loop logic
...
* clearer variable names
* don't rely on npos being outside indices range - explicitly break the loop instead
2016-08-23 18:27:07 +03:00
Frank Zingsheim
8c8a534117
SymbolDatabase: stronger type matching
2016-08-21 16:11:23 +02:00
Frank Zingsheim
7c9a69357e
Fixed #7696 (cppcheck 1.75 runs very slowly with style and/or performance checks)
2016-08-21 16:07:05 +02:00
Daniel Marjamäki
bea35ee04c
GUI: Select configuration that is checked
2016-08-21 15:57:38 +02:00
Daniel Marjamäki
a94628d8fc
Settings: Make Settings::_terminated static. All threads and subchecks are terminated
2016-08-21 15:57:19 +02:00
Daniel Marjamäki
d9ebdc6a10
Preprocessor: fix handling of -U in Preprocessor::getConfigs()
2016-08-21 15:01:04 +02:00
Daniel Marjamäki
ff036c8742
Fixed #7700 (Using -D to force a configuration still checks the configuration as well as configurations that are not relevant)
2016-08-21 13:53:44 +02:00
Daniel Marjamäki
19c105cdf9
Fixed #7677 (skipping of configurations broken?)
2016-08-21 12:31:26 +02:00
PKEuS
e0838ff194
Fixed crash on garbage code ( #7699 )
2016-08-21 11:06:48 +02:00
Daniel Marjamäki
363605906f
Fixed #7695 (Running with -U_WIN32 still checks related configurations)
2016-08-21 07:45:15 +02:00
Robert Reif
62ac40fc5e
Fixed #7706 ((debug) Executable scope 'foo' with unknown function.)
2016-08-20 22:43:27 +02:00
Robert Reif
1dd1f6dd6a
Fixed #7673 ((debug) Executable scope 'foo' with unknown function.)
2016-08-20 17:56:48 +02:00
Daniel Marjamäki
fe2fa4d343
GUI: Only check current platform when checking sln/vcxproj file
2016-08-20 13:47:25 +02:00
Daniel Marjamäki
f1d0498418
ImportProject: Fix crash when there is condition $(Configuration.Contains('X'))
2016-08-20 13:00:47 +02:00
Daniel Marjamäki
079051a4e4
ImportProject: UseOfMfc => define __AFXWIN_H__
2016-08-20 12:20:04 +02:00
Daniel Marjamäki
8a66535399
Fixed #7694 (ValueType: 1.23L)
2016-08-20 08:44:53 +02:00
Robert Reif
b56c765a45
Fixed #7703 ((debug) Executable scope 'foo' with unknown function.)
2016-08-20 07:43:15 +02:00
Robert Reif
f1b5ac30a7
Fixed 7698 (FP syntaxError with enum (1.75 regression))
2016-08-19 19:09:52 +02:00
Robert Reif
1e999e0cfe
Fixed #7697 ((debug) Executable scope 'B' with unknown function.)
2016-08-19 19:06:15 +02:00
Daniel Marjamäki
789aef7fde
Fixed #4920 (Microsoft ATL/MFC CString::Format argument checking)
2016-08-19 17:36:27 +02:00
Daniel Marjamäki
305609f4fb
Fixed #7688 (setTokenValue: crash when there is no 2nd operand for ternary operator)
2016-08-17 18:44:41 +02:00
Daniel Marjamäki
499e52c976
astyle formatting
...
[ci skip]
2016-08-15 18:04:55 +02:00
Daniel Marjamäki
1f98af654a
ValueFlow: better handling of ? when condition result is known
2016-08-15 14:19:35 +02:00
amai2012
453b5577cd
Merge pull request #819 from boos/cwe-mapping-9
...
CWE mapping of assignBoolToFloat, strncatUsage, sizeArgumentAsChar, terminateStrncpy, bufferNotZeroTerminated, negativeArraySize, noExplicitConstructor, virtualDestructor
2016-08-15 09:20:59 +02:00
Daniel Marjamäki
62362cd06d
ValueFlow: improve handling of unary minus
2016-08-14 22:19:06 +02:00
Roberto Martelloni
41dee04e90
CWE mapping of assignBoolToFloat, strncatUsage, sizeArgumentAsChar, terminateStrncpy, bufferNotZeroTerminated, negativeArraySize, noExplicitConstructor, virtualDestructor
2016-08-14 18:23:41 +01:00
Daniel Marjamäki
f2e49b4db4
Fixed #7178 (Defect: False positive due to mistake in return type of function pointer.)
2016-08-14 17:19:14 +02:00
Daniel Marjamäki
c8667096e0
Fixed #7658 (False positive: Same iterator is used with different containers)
2016-08-14 10:49:48 +02:00
Robert Reif
73e1378af8
Fixed #7661 (False positive: Function parameter 'e' should be passed by reference.)
2016-08-13 21:25:57 +02:00
Daniel Marjamäki
2ed50fbf5a
Refactoring
2016-08-13 15:23:46 +02:00
Daniel Marjamäki
606e31602c
Fixed #7177 (Support compile_commands.json)
2016-08-13 10:50:03 +02:00
Robert Reif
fc1a755100
Fixed #7666 (Executable scope with unknown function.)
2016-08-09 14:02:06 +02:00
Daniel Marjamäki
bd21cd7c85
Fixed #6309 (FP: checkRedundantAssignment should not warn for pointer alias)
2016-08-08 21:43:00 +02:00
Daniel Marjamäki
c586ae8cbe
Revert 'project' - it is not ready yet
2016-08-07 17:10:37 +02:00
Bartlomiej Grzeskowiak
09a83f2cc8
Fixed #7567 ("(a | 7) > 6U" is always true)
2016-08-07 16:58:39 +02:00
Daniel Marjamäki
78fc307c73
1
2016-08-07 15:45:36 +02:00
Daniel Marjamäki
4dbdb50317
split
2016-08-07 15:35:41 +02:00
Daniel Marjamäki
70ccfa5947
fix loading of vcxproj files
2016-08-07 14:21:06 +02:00
Daniel Marjamäki
e0f4ce9358
vs
2016-08-07 13:55:27 +02:00
Daniel Marjamäki
f0727f2148
Merge branch 'master' into project
2016-08-06 21:05:29 +02:00
Daniel Marjamäki
09d6f4f0a4
1
2016-08-06 21:04:50 +02:00
Frank Zingsheim
47c063e13f
Fixed #7660 (cmake build does not handle simplecpp)
2016-08-06 18:21:54 +02:00
Daniel Marjamäki
a8df08f22b
Fixed #7659 (crash: Token::varId() : vxl: brdb_selection.cxx)
2016-08-06 18:07:41 +02:00
Daniel Marjamäki
b86c2689b3
TestPreprocessor: Fix output
2016-08-06 13:28:24 +02:00
Daniel Marjamäki
2f1c80560a
1.75: Set versions
2016-08-06 11:47:27 +02:00
Robert Reif
cdfe92b753
Fixed #7657 (False positive: Function parameter 'c' should be passed by reference.)
2016-08-06 10:27:00 +02:00
Daniel Marjamäki
8983997a88
Fix GCC warning
2016-08-06 10:22:58 +02:00
Daniel Marjamäki
3777db39db
Preprocessor: Mostly refactorings. Also added handling of --include.
2016-08-06 09:15:09 +02:00
Dmitry-Me
89e8f51a28
Explicit continue instead of init-set-check
2016-08-05 15:05:37 +03:00
Daniel Marjamäki
7d6c587580
Fixed #6113 (Tokenizer::simplifyFunctionPointer: wrong simplification of usage 'return (*f)();')
2016-08-04 19:10:08 +02:00
PKEuS
084fcc936c
Rephrased syntaxError message for empty configurations to improve readability:
...
Old: Invalid number of character 'c' when these macros are defined: ''.
New: Invalid number of character 'c' when no macros are defined.
2016-08-04 16:28:11 +02:00
PKEuS
ad96f7b519
Fixed wrong variable being used in CheckOther::checkPassByReference()
2016-08-04 15:30:59 +02:00
Daniel Marjamäki
9711064b74
Fixed #6646 (False positive uninitvar - loopvariable initialized inside loop)
2016-08-04 14:39:54 +02:00
amai2012
0bec604627
Repair CWE mapping for calling obsolete functions
2016-08-04 13:55:38 +02:00
Daniel Marjamäki
2566fd09da
Fixed #5803 (False positive: Same iterator is used with different containers - insert() from range of different container)
2016-08-04 09:35:16 +02:00
Robert Reif
55b3f0bf38
Fixed #752 (SymbolDatabase: Does not match function if redundant keywords mismatch (C++))
2016-08-04 09:06:32 +02:00
Dmitry-Me
7f30108f1d
Descriptive variable name
2016-08-03 18:15:08 +03:00
Robert Reif
b40edca62f
Fixed #7387 (SymbolDatabase: Wrong overloaded function is picked)
2016-08-02 23:34:11 +02:00
Robert Reif
b9030bcfcd
Fixed #7650 (SymbolDatabase: Wrong Token::type(), enum and class with same name)
2016-08-02 23:30:46 +02:00
Daniel Marjamäki
908e1b991e
Tokenizer: Refactoring simplifyPlatformTypes()
2016-08-02 19:44:18 +02:00
Daniel Marjamäki
9f59bd6dae
Try to fix travis hang
2016-08-02 19:23:45 +02:00
Robert Reif
b44f448acc
Fixed #7649 (SymbolDatabase: Wrong overloaded function is picked for char and wchar_t)
2016-08-02 18:54:01 +02:00
Daniel Marjamäki
f23287544a
Fixed #7196 (Improve check: deem sizeof(thing) as using the thing's members)
2016-08-02 18:50:04 +02:00
Daniel Marjamäki
cc62259103
Tokenizer: don't set varid on c++11 'template using' type.
2016-08-02 15:04:07 +02:00
Robert Reif
612e83d5af
SymbolDatabase: Small fix
2016-08-02 14:31:07 +02:00
Daniel Marjamäki
2187e8ba02
CheckUninitVar: Fixed FP when dereferencing multidimensional arrays. Refactoring of testing. The FP was spotted when looking at #7092
2016-08-02 14:27:51 +02:00
Daniel Marjamäki
99b23012aa
Refactoring, use Settings::platformString()
2016-08-02 10:53:51 +02:00
Robert Reif
891e21b478
Fixed #7458 (SymbolDatabase: Wrong overloaded function is picked)
2016-08-02 08:58:11 +02:00
Daniel Marjamäki
41526ef3a8
Fixed #6147 (FP unreadVariable: variable assignment in function call argument list)
2016-08-02 08:50:04 +02:00
Daniel Marjamäki
31484133c0
Fixed #7158 (Tokenizer::createLinks2(): does not set links for < > in 'enum { value = boost::mpl::at_c<B,C> };')
2016-08-01 22:26:11 +02:00
Daniel Marjamäki
e784901303
Fixed #6971 (False positive duplicateExpressionTernary - cast ignored)
2016-08-01 21:53:43 +02:00
Daniel Marjamäki
695b1f0ef3
Fixed #5692 (Preprocessor: ifdef symbol used indirectly in code leads to 'analysis failed')
2016-08-01 20:09:41 +02:00
PKEuS
da34883770
Improved message invalidscanf: Removed misleading example from verbose message
2016-08-01 18:42:27 +02:00
Dmitry-Me
b3877a8ba0
Cleanup variable names
...
* fix typo
* use camelCase instead of underscore
2016-08-01 14:33:56 +03:00
Daniel Marjamäki
1c51fbce7a
astyle formatting
...
[ci skip]
2016-08-01 13:01:01 +02:00
Daniel Marjamäki
095b2f73f7
Library: look for cfg files in more paths, include exepath even if CFGDIR is used.
2016-08-01 12:58:33 +02:00
Daniel Marjamäki
09b6568ea2
Fixed #7646 (podtypes do not get proper valuetype)
2016-07-31 19:47:34 +02:00
Daniel Marjamäki
8d89eefff9
Merge pull request #815 from boos/cwe-mapping-8
...
CWE mapping of invalidscanf, invalidScanfArgType_s, invalidScanfArgType_int, invalidScanfArgType_float, invalidPrintfArgType_s, invalidPrintfArgType_n, invalidPrintfArgType_p, invalidPrintfArgType_int, invalidPrintfArgType_uint, invalidPrintfArgType_sint, invalidPrintfArgType_float, wrongPrintfScanfParameterPositionError
2016-07-31 14:14:48 +02:00
Daniel Marjamäki
b6246ecc55
bump simplecpp and update Preprocessor to handle new simplecpp::Output enum constants
2016-07-31 12:10:30 +02:00
Roberto Martelloni
9ab4057ddc
CWE mapping of invalidscanf, invalidScanfArgType_s, invalidScanfArgType_int, invalidScanfArgType_float, invalidPrintfArgType_s, invalidPrintfArgType_n, invalidPrintfArgType_p, invalidPrintfArgType_int, invalidPrintfArgType_uint, invalidPrintfArgType_sint, invalidPrintfArgType_float, wrongPrintfScanfParameterPositionError
2016-07-31 10:49:36 +01:00
Daniel Marjamäki
66d0d7a0ad
Fixed #7553 (False positive with 1.74 'returning an integer in a function with pointer return type' when no integer is used)
2016-07-29 21:53:58 +02:00
Daniel Marjamäki
5611a71820
Fixed #7543 (False positive boolean result used in bitwise operation)
2016-07-29 18:46:43 +02:00
Daniel Marjamäki
89be630156
Fixed #7543 (False positive boolean result used in bitwise operation)
2016-07-29 17:24:22 +02:00
Daniel Marjamäki
a65ae3ce2e
Token: Allow dollar sign in identifiers
2016-07-29 13:42:11 +02:00
Daniel Marjamäki
5546f052ef
Preprocessor: the simplecpp begin() and end() has been renamed
2016-07-29 08:51:57 +02:00
PKEuS
452ecc7ceb
Improved check: Detect passedByValue even for arguments that are not declared as "const"
2016-07-28 19:37:10 +02:00
Daniel Marjamäki
0777ecd071
Fixed #7640 (Preprocessor::getConfigs: -U is not honored)
2016-07-28 19:22:59 +02:00
Daniel Marjamäki
57951a2681
one more fix for rules
2016-07-28 15:35:41 +02:00
Daniel Marjamäki
1a4ef60e7c
Fixed #7639 (rule support partially broken since simplecpp was introduced)
2016-07-28 13:40:52 +02:00
PKEuS
3f4fe8f578
Refactorized CheckBufferOverrun:
...
- Removed redundant code
- Apply non-simplified checking in test suite
2016-07-27 17:28:43 +02:00
PKEuS
13c11b8c1d
Fixed compilation with HAVE_RULES
2016-07-26 17:10:05 +02:00
PKEuS
eafed235a6
Attempt to fix build on Unix systems, ran AStyle.
2016-07-26 16:50:32 +02:00
PKEuS
9a6569fde1
Always set ErrorMessage::file0 to ensure that the source file that cppcheck is checking when an error occurs can be identified
...
Removed unused function and unused includes from preprocessor.h/cpp
2016-07-26 16:28:40 +02:00
Dmitry-Me
560e7d618d
Get rid of "magic" patterns set
...
* magic should match "knownPatterns" but it didn't
* two identical sets are of no use
2016-07-26 16:42:17 +03:00
Daniel Marjamäki
71f62950ed
Tokenizer::findGarbageCode: Make it less picky about 'UNKNOWN_MACRO if ..'
2016-07-26 14:35:11 +02:00
PKEuS
fc1603eb9b
MathLib, ValueType: Support integer suffix "i64"
2016-07-26 13:19:53 +02:00
Daniel Marjamäki
7ff9545b10
Fixed #7637 (FP syntax error assignment in switch)
2016-07-26 12:15:55 +02:00
Daniel Marjamäki
fd19ab4ed1
fix garbage code handling
2016-07-26 08:50:00 +02:00
Dmitry-Me
2b31afe2ab
Variable name consistent with surroundings
2016-07-26 09:46:50 +03:00
Daniel Marjamäki
383b815cca
Tokenizer: refactoring garbage code handling
2016-07-26 08:16:10 +02:00
Matthias Krüger
6fd8edd6e5
Symboldatabase::sizeOfType: fix crash; fixes #7615
2016-07-26 01:18:47 +02:00
PKEuS
045116f797
Optimized SymbolDatabase::findVariableType().
2016-07-25 18:33:22 +02:00
Dmitry-Me
64360d291d
Variable name consistent with surroundings
2016-07-25 17:04:18 +03:00
Daniel Marjamäki
2feb86a6af
Preprocessor: set platform info
2016-07-25 14:52:23 +02:00
Daniel Marjamäki
90faa80590
Preprocessor: Cleanup unused functions
2016-07-25 14:29:02 +02:00
Daniel Marjamäki
7ef02a7469
Cleanup Tokenizer
2016-07-25 12:12:11 +02:00
Daniel Marjamäki
adf16fae8b
Remove handling of ##, __FILE__, __LINE__ from tokenizer
2016-07-25 07:58:03 +02:00
Daniel Marjamäki
0767284ca1
Fixed #7630 (FP: dead store, modifying array, index var modified)
2016-07-25 07:35:33 +02:00
Daniel Marjamäki
cd3818088f
Remove unused function Tokenizer::tokenizeCondition
2016-07-24 14:37:43 +02:00
Daniel Marjamäki
e9fef003ac
Preprocessor: refactoring directives, they are now only set once for each file
2016-07-24 14:02:21 +02:00
Daniel Marjamäki
48fc19b34c
Remove unused function Preprocessor::preprocessCleanupDirectives()
2016-07-24 12:51:52 +02:00
PKEuS
2e2800f5bd
Fixed several MSVC warnings
2016-07-24 12:36:36 +02:00
PKEuS
f44d9d5c9b
Optimizations in CheckInternal:
...
- Run checks only on executable scopes
- Simplified patterns
2016-07-24 12:05:58 +02:00
Daniel Marjamäki
f931c0cf2b
Preprocessor::getConfigs: Handle invalid #else better
2016-07-23 14:40:01 +02:00
Daniel Marjamäki
ed4a47de45
Tokenizer: Improve syntax checking of switch,if,while
2016-07-22 16:54:24 +02:00
Dmitry-Me
224e55780e
Add const where const access is enough
2016-07-22 15:35:07 +03:00
PKEuS
12e3cf584c
Visual Studio solution:
...
- Fixed include paths
- Export simplecpp to cppcheck-core.dll
- Added /Zc:rvalueCast
2016-07-21 20:38:58 +02:00
Daniel Marjamäki
99307846cf
Preprocessor: simplecpp optimisations
2016-07-21 19:42:26 +02:00
Daniel Marjamäki
79ac409c7d
Preprocessor: Refactoring Preprocessor::getConfigs()
2016-07-21 19:11:49 +02:00
Daniel Marjamäki
b2f1b95e38
Bump simplecpp. Preprocessor: Warn about missing includes
2016-07-21 12:47:00 +02:00
Daniel Marjamäki
9899e81f2e
handle inline suppressions in included files
2016-07-21 07:57:23 +02:00
Daniel Marjamäki
e16f0e500c
Preprocessor: Parse comments and then remove them
2016-07-21 07:48:17 +02:00
Daniel Marjamäki
8a1936d5c9
update AdditionalIncludeDirectories in vcxproj files
2016-07-20 22:17:23 +02:00
Daniel Marjamäki
4ceba79f7f
Replace std::to_string, to hopefully make appveyor happier
2016-07-20 20:43:32 +02:00
Daniel Marjamäki
f1839ebfaf
Preprocessor: Fix crashes for invalid code
2016-07-20 20:39:03 +02:00
Daniel Marjamäki
03d2829fb9
Merge simplecpp branch
2016-07-20 12:21:00 +02:00
Daniel Marjamäki
a68da1a725
ValueType: Set valuetype for sizeof argument
2016-07-20 09:39:48 +02:00
Daniel Marjamäki
3eef225b36
Revert preprocessor fix for struct tag macros. There are performance problems.
2016-07-19 18:59:58 +02:00
Matthias Krüger
18d5a7317e
fix travis; fix [lib/preprocessor.cpp:2772]: (style) The scope of the variable 'noprescan' can be reduced.
2016-07-19 17:28:31 +02:00
Mavik
3e86c7b637
Fixed #5700 (Defect: False positives due to failure to expand struct tag macros)
2016-07-19 16:52:53 +02:00
Daniel Marjamäki
9bda97975a
Fixed #7037 (32bit (-m32): testsuite fails)
2016-07-19 12:14:55 +02:00
Daniel Marjamäki
83b982064d
Fixed #7579 (varid not set properly in 'int b[] = { m * a[0] };')
2016-07-18 15:27:08 +02:00
Daniel Marjamäki
f55040a987
Fix segfault when there is no ast generated in lambda function
2016-07-18 14:08:44 +02:00
Daniel Marjamäki
0ddeac0429
refactor (use ast) and improve CheckOther::checkRedundantAssignment (warn about global variables unless they are volatile, handle arrays in lhs better)
2016-07-18 12:43:23 +02:00
Daniel Marjamäki
b9443771fb
cleanup tests
2016-07-18 10:42:03 +02:00
Daniel Marjamäki
4f051bf9dd
Fixed #7599 (valueFlowAST: handle && and || better)
2016-07-17 21:51:20 +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
45ee29d5dc
Fixed #7604 (simplifyCalculation: expression '0 && x[2]' is not simplified properly)
2016-07-17 15:52:53 +02:00
PKEuS
801fd8f96a
Support trailing return types (C++11)
2016-07-17 15:47:50 +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
7a183779e2
CheckOther::checkMemsetZeroBytes(): Support wmemset()
2016-07-16 21:53:25 +02:00
Daniel Marjamäki
b8ca9fc844
Tokenizer: alternative tokens for and,or,etc. context sensitive for both c and c++.
2016-07-16 21:29:56 +02:00
Daniel Marjamäki
920ac5a3f6
astyle formatting
...
[ci skip]
2016-07-16 21:21:24 +02:00
Daniel Marjamäki
6e3d5dc0d1
Fixed #7580 (False positive when using logical operator keywords 'and', 'or')
2016-07-16 20:21:31 +02:00
amai2012
920b402d35
Merge pull request #813 from boos/cwe-mapping-7
...
CWE mapping of incorrectStringCompare, literalWithCharPtrCompare, charLiteralWithCharPtrCompare, incorrectStringBooleanError, staticStringCompare, stringCompare, signConversion, unusedFunction, unusedVariable
2016-07-16 13:10:22 +02:00
Roberto Martelloni
25525e38a7
CWE mapping of incorrectStringCompare, literalWithCharPtrCompare, charLiteralWithCharPtrCompare, incorrectStringBooleanError, staticStringCompare, stringCompare, signConversion, unusedFunction, unusedVariable
2016-07-16 10:07:06 +01:00
PKEuS
0afecd8fee
Do not simplify name "CALLBACK" away on non-windows platforms ( #7554 )
2016-07-16 10:43:28 +02:00
Robert Reif
768c26805c
Fixed false positive: %Ld in format string (no. 1) requires 'long long' but the argument type is 'long long' ( #7601 ).
2016-07-16 10:33:46 +02:00
Alexander Mai
e495bfb960
Use proper tokenizer variable
2016-07-10 22:24:28 +02:00
PKEuS
f869f7ebde
Fixed false positive reademptycontainer when end() is called ( #7560 )
2016-07-10 10:48:21 +02:00
Simon Martin
bae81fba05
Silent clang -Wshadow warning. ( #812 )
...
Add an optional extended description…
2016-07-09 19:07:58 +02:00
Alexander Mai
4eef5642c9
Avoid null pointer access in CheckBufferOverrun::runSimplifiedChecks
2016-07-09 19:00:59 +02:00
PKEuS
ded8d80b23
Library: Support arguments with default value. Fixed default value handling for <container> tags broken in last commit.
2016-07-09 12:44:17 +02:00
PKEuS
b5d3ecb942
Updated TinyXML, make use of second argument of XMLElement::Attribute()
2016-07-09 11:56:07 +02:00
Robert Reif
c1594bedbb
Fixed creation of SymbolDatabase for some template code ( #7594 )
2016-07-09 09:22:52 +02:00
PKEuS
44a19b527e
Use ValueFlow and SymbolDatabase to detect buffer overflows with new and malloc, improving support for enums ( #7576 )
2016-07-08 20:53:08 +02:00
Robert Reif
eca805ba3b
ValueFlow: Fixed constant folding of sizeof(enum) and sizeof(enumerator) ( #7564 )
2016-07-08 20:39:34 +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
Daniel Marjamäki
a87b4368cb
Revert "Preprocessor: Start replacing our Preprocessor code with simplecpp"
...
This reverts commit 9820783b60
.
There was Travis errors I'll need to look more at.
2016-07-07 23:45:42 +02:00
Daniel Marjamäki
9820783b60
Preprocessor: Start replacing our Preprocessor code with simplecpp
2016-07-07 22:58:56 +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
3bdcf68990
Fixed false positive in CheckUnusedVar::checkFunctionVariableUsage(): Bailout when break; is encountered
...
See also: https://sourceforge.net/p/cppcheck/discussion/general/thread/1c169dc5/
2016-07-07 18:27:31 +02:00
Simon Martin
40eacb19b1
Ticket #7565 : Handle numbers with several C++14 integer separators.
2016-07-01 23:24:28 +02:00