Daniel Marjamäki
a762511067
Fixed #7888 (1.77 false positive from knownConditionTrueFalse with sizeof(int) == sizeof(long))
2017-01-09 22:28:55 +01:00
Daniel Marjamäki
b1f7e46491
Fixed #7323 (valueflow: global variables)
2017-01-09 15:53:08 +01:00
Simon Martin
417c7e36c0
Ticket #7548 : Properly detect the end of template parameter default values during instantiation.
2017-01-08 09:38:29 +01:00
Matthias Krüger
d4dcef4a30
add testcase for #6011 (crash in libreoffice, failure to create AST for comparison) which I still had in some branch.
2017-01-08 02:36:21 +01:00
Matthias Krüger
064a4aa4cc
improve constness of functions as per cppchecks suggestions.
2017-01-07 14:31:03 +01:00
Simon Martin
bd92ddd386
Ticket #7850 : Properly handle C functions called "class".
2017-01-06 21:16:28 +01:00
Robert Reif
4123b457d7
Fixed #7441 (SymbolDatabase: No scope when function return type not specified)
2017-01-06 11:53:17 +01:00
Robert Reif
139071d88b
Fixed #7875 (New check: function declaration and definition argument names don't match)
2017-01-05 08:52:11 +01:00
Robert Reif
4c25e798b1
Fixed #7865 (Tokenizer::createLinks2(): does does set links for <> in struct template)
2016-12-31 22:05:29 +01:00
Simon Martin
f43431408b
Ticket #7685 : Properly handle function calls as argument to a dealloc function. ( #853 )
...
Add an optional extended description…
2016-12-29 13:17:46 +01:00
Daniel Marjamäki
85ae3adeb2
Fixed #5144 (FP old memleak - tree structure)
2016-12-27 08:12:37 +01:00
Daniel Marjamäki
1b21767954
Fixed #5666 (False positive when modifiying std::string by pointer)
2016-12-26 17:13:35 +01:00
Daniel Marjamäki
770abcf453
Fixed #5398 (False positive: Scope of variable can be reduced does not account for other variables not reduceable)
2016-12-26 14:14:40 +01:00
Daniel Marjamäki
c8a450c9be
uninitvar: Fixed a FP seen in daca2
2016-12-25 22:43:29 +01:00
Matthias Krüger
ecc91ba914
fix a couple of issues in shell scripts found by codacy.
2016-12-25 00:43:47 +01:00
PKEuS
ea53bd22b7
Fixed false positive returnTempReference with operator++ ( #7874 )
2016-12-22 11:49:59 +01:00
Daniel Marjamäki
df6ae9f3b4
Fixed #7847 (Can't detect shift negative values when some op is executed)
2016-12-22 09:40:19 +01:00
Daniel Marjamäki
d79688c40b
Fixed #7822 (False positive for uninitialized variable if array type is used)
2016-12-21 23:11:11 +01:00
Daniel Marjamäki
28af5c0379
Integer Overflow: Don't warn about left-shift expressions with negative result like '1<<31'. That is common practice.
2016-12-21 18:19:59 +01:00
Daniel Marjamäki
426d1b4196
Merge pull request #846 from simartin/ticket_7805
...
Ticket #7805 : Ignore enumerators when simplifying known variables.
2016-12-21 17:58:48 +01:00
Daniel Marjamäki
f40bdddbab
ValueFlow: Better handling when casting calculation result
2016-12-20 23:09:50 +01:00
Daniel Marjamäki
f0d91fb74b
Fixed #7869 (False positive: Array index out of bounds)
2016-12-20 22:01:19 +01:00
Daniel Marjamäki
44ccbdedec
ValueFlow: Improved value for cast
2016-12-20 21:37:25 +01:00
Daniel Marjamäki
606bb78297
ValueFlow: Better handling of casts
2016-12-20 19:32:21 +01:00
Daniel Marjamäki
e14e86c103
ValueFlow: only set values in conditional code in subfunctions when sure
2016-12-20 11:06:20 +01:00
Daniel Marjamäki
807b653739
ValueFlow: Fix FP in for loops when 2nd expression is 0
2016-12-20 07:54:38 +01:00
Daniel Marjamäki
f1ad7368f6
ValueFlow: bool values
2016-12-19 21:21:18 +01:00
Daniel Marjamäki
aaf19c1e4f
Fixed #7839 (Prefix increment triggers parameter modification warning)
2016-12-19 15:25:36 +01:00
Daniel Marjamäki
f5ad7482a8
CheckBufferOverrun: Skip warnings about array index out of bounds in unions. Theoretically, the array is at least as large as the biggest union member.
2016-12-18 22:10:30 +01:00
Daniel Marjamäki
4558701c08
varid: don't generate varid and symboldatabase variable for function call parameter
2016-12-18 20:16:38 +01:00
Daniel Marjamäki
17aaecbd6b
ValueFlow: Improved handling of sizeof
2016-12-18 14:03:48 +01:00
Daniel Marjamäki
461e5cc5c9
CheckBufferOverrun: Moved check from simplified to normal. This fixes a FP in asterisk.
2016-12-18 11:14:05 +01:00
Daniel Marjamäki
72e4bc9d88
ValueFlow: skip values that cause false assertion condition
2016-12-17 21:23:14 +01:00
Frank Zingsheim
cb5a5e6a25
Improve Fix #6180 (Access of moved variable still allowed until function is called)
2016-12-17 16:42:46 +01:00
Frank Zingsheim
9a871d33f7
Improve Fix #6180 ("reset" and "clear" clears the move status)
2016-12-17 16:39:30 +01:00
Frank Zingsheim
f4ab45f13b
Improve Fix #6180 (Do not warn about move if it is part of a reassignment of the variable)
2016-12-17 16:39:30 +01:00
Simon Martin
5119ae84b8
Ticket #7805 : Ignore enumerators when simplifying known variables.
2016-12-17 14:05:26 +01:00
Daniel Marjamäki
8cba02dc66
Readd test case I removed in b098d5fbd6
2016-12-11 21:24:12 +01:00
Daniel Marjamäki
31337dda27
ValueFlow: Better handling of && and || in for loop to avoid FP
2016-12-11 21:19:24 +01:00
Daniel Marjamäki
d4f2512421
Tokenizer::simplifyKnownVariables: Added bailout when pointer alias is simplified and loop is encountered
2016-12-11 19:12:23 +01:00
Frank Zingsheim
e0d4720e19
Fix #7829 (false-positive: knownConditionTrueFalse linked to virtual method)
...
Return values of virtual functions in valueflow are only possible values
since function might be overloaded.
2016-12-11 10:44:05 +01:00
Daniel Marjamäki
87abe1174f
floatConversionOverflow: Avoid warnings when 255.5 is converted to unsigned char etc.
2016-12-10 23:14:40 +01:00
Daniel Marjamäki
b098d5fbd6
ValueFlow: We need better handling of casts
2016-12-10 22:09:01 +01:00
PKEuS
120fe2e4d6
Fixed false positive: The function 'operatorstd::string' is never used. ( #7853 )
2016-12-08 13:54:54 +01:00
PKEuS
cfac3b457d
Several small refactorizations
2016-12-06 22:12:02 +01:00
Daniel Marjamäki
7fc9fbc746
synthetic: reduce controlflow testcases
2016-12-06 21:45:51 +01:00
PKEuS
40401534d7
Refactorized Library
2016-12-06 14:50:27 +01:00
PKEuS
2f6350a0d0
Refactorized Library
2016-12-06 14:09:28 +01:00
PKEuS
d665641a76
Refactorizations:
...
- use std::string::pop_back() and std::string::back()
- pass argument as const std::string&
- Moved iterator into for loop head
2016-12-05 14:50:01 +01:00
Daniel Marjamäki
5df8e7f50c
Fixed #7596 (ValueFlow: better handling for 'x*(1-x-1)')
2016-12-04 22:39:59 +01:00
Daniel Marjamäki
c12cb69cc2
ValueType: Handle function pointers
2016-12-04 16:02:50 +01:00
Daniel Marjamäki
9c69546d72
Fixed #7842 (Preprocessor::getConfigs: #error in #ifndef not handled well)
2016-12-03 11:59:48 +01:00
orbitcowboy
8a45c3192b
There is not need to clear a string directly after its creation.
2016-11-30 10:39:14 +01:00
PKEuS
36d12d7866
SymbolDatabase: Function::retDef should not point at "static" or "extern"
2016-11-28 17:23:39 +01:00
Stefan Weil
57b57428c2
Fix some typos in comments (found by codespell)
...
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-11-27 11:40:42 +01:00
Daniel Marjamäki
b6cba4a55c
Fixed #7784 (Token: can't be both type and variable)
2016-11-26 22:39:47 +01:00
orbitcowboy
55ae961ac2
std.cfg and windows.cfg: Improved support for <use-retval/> for functions like ftell(), [f]get[w]c().
2016-11-26 21:31:15 +01:00
orbitcowboy
8a0f856e95
Fixed regression in test/cfg/std.c introduced by b0d09926fb
.
2016-11-26 21:14:31 +01:00
Matthias Krüger
213589ee68
ValueFlow: don't perform UB when a function returns shifts of/by negative values. Fixes #7814 .
2016-11-24 23:23:47 +01:00
Daniel Marjamäki
a61f4e9c94
Fixed #7831 (false-positive: terminateStrncpy)
2016-11-24 07:04:58 +01:00
Matthias Krüger
cf24ea5221
fix #7783 : false positive knownConditionTrueFalse on assert(0 && "message").
2016-11-23 21:54:38 +01:00
Daniel Marjamäki
e1a3c0955a
synthetic tests: Added run-clang.sh
2016-11-23 14:49:46 +01:00
Matthias Krüger
01e5f14bf8
CheckClass::virtualDestructorError and a variation of CheckNullPointer::nullPointerError would print inconclusive,warning messages altough no --enable=warning was given. Fix.
2016-11-23 00:13:09 +01:00
Daniel Marjamäki
0b3751520b
Add a check for float conversion overflows
2016-11-22 22:37:13 +01:00
Daniel Marjamäki
8870195794
Synthetic: Add run-lint.bat script
2016-11-22 19:25:05 +01:00
PKEuS
02d8f691f8
Fixed false positive: Do not show useInitializationList message for enums
2016-11-22 12:09:30 +01:00
Daniel Marjamäki
aff84daff3
synthetic tests: renamed functions
2016-11-22 11:37:15 +01:00
Daniel Marjamäki
d40f4e4a55
Fixed #7778 (valueFlowAfterAssign: alias)
2016-11-21 17:26:36 +01:00
Daniel Marjamäki
21364b4401
Refactoring fix for #7816
2016-11-21 13:54:59 +01:00
amai2012
933815ee54
#7816 Segmentation fault at Tokenizer::simplifyAttribute() for stand-alone void. Throw syntax error on incomplete code
2016-11-21 12:19:47 +01:00
Daniel Marjamäki
74fa69fe5e
Fixed #7821 (syntax error, first token is &)
2016-11-20 17:59:50 +01:00
Frank Zingsheim
c8ff96fe8f
Fixed #6180 (Usage of variable after std::move or std::forward)
2016-11-20 15:14:49 +01:00
PKEuS
e23dc5c1e2
Fixed wrong message shown if unused label appears directly after a switch() scope
2016-11-20 14:43:54 +01:00
Matthias Krüger
d3919b23fa
testrunner: testgarbage: test-function was not called, fix.
2016-11-20 14:36:36 +01:00
Daniel Marjamäki
5b377ea2e4
Fixed #7821 (segmentation fault, invalid last token)
2016-11-20 14:15:51 +01:00
Daniel Marjamäki
79fc332511
Fixed #7810 (SymbolDatabase: method with redundant scope info)
2016-11-17 22:45:50 +01:00
Daniel Marjamäki
e1e9eacccc
ValueFlow: Added float type
2016-11-13 22:59:56 +01:00
Daniel Marjamäki
7ebfb10edd
Fixed #7806 (ValueFlow: better handling of subfunction with early return)
2016-11-13 18:19:51 +01:00
Daniel Marjamäki
621c1e59c6
--project: handle SolutionDir and ProjectDir. This is a partial fix for #7791 . custom build macros are still not handled.
2016-11-11 16:22:14 +01:00
Daniel Marjamäki
b04f6fb359
bump simplecpp to rev d1c995c03515d289c7aa7246a74d666fd012c4eb
2016-11-10 20:04:05 +01:00
Daniel Marjamäki
4de5dc75aa
Fixed #7807 (false positive: (error) Signed integer overflow for expression 'int32_max-1'.)
2016-11-07 22:29:40 +01:00
Daniel Marjamäki
684e78f54e
synthetic test: fix compiler errors
2016-11-07 09:30:17 +01:00
Daniel Marjamäki
ea087e6188
synthetic test: renamed tests. tweak report.
2016-11-07 08:48:38 +01:00
Daniel Marjamäki
ac7b351d1e
ValueFlow: Don't calculate x<<64 and x>>64
2016-11-06 20:40:58 +01:00
Daniel Marjamäki
dd69d5eabe
ValueFlow: Don't calculate result when there is UB
2016-11-06 17:42:01 +01:00
Alexander Mai
ee11f0974a
#7769 segmentation fault at setTokenValue() on invalid code.
2016-11-06 14:20:58 +01:00
Daniel Marjamäki
0ddd82d1d5
test/synthetic: added pointer alias test case. renamed functions.
2016-11-05 16:56:30 +01:00
Daniel Marjamäki
f280061ff8
signed int overflow: warn about intmax+1
2016-11-05 09:29:52 +01:00
Daniel Marjamäki
2885a75ea6
ValueFlow: handle ~ in setTokenValue
2016-11-05 09:29:22 +01:00
Daniel Marjamäki
40bf269ea0
Add report.py that generates report for synthetic tests
2016-11-04 22:16:46 +01:00
Daniel Marjamäki
f5046959b3
minor updates in synthetic tests
2016-11-04 22:15:41 +01:00
Daniel Marjamäki
8e8194ee0f
try to make synthetic tests more explicit
2016-11-04 19:32:42 +01:00
orbitcowboy
919f8ac323
Fixed typos. There are no real changes.
2016-11-04 15:01:05 +01:00
orbitcowboy
ed453d24da
std.cfg: Added returnValue support for iswdigit().
2016-11-04 14:20:59 +01:00
orbitcowboy
75124317e9
std.cfg: Added returnValue support for iswblank().
2016-11-04 14:03:48 +01:00
Daniel Marjamäki
469ca6af1b
Add synthetic ub tests
2016-11-03 21:45:33 +01:00
Daniel Marjamäki
6e9346323c
tweak synthetic tests
2016-11-03 20:16:49 +01:00
Daniel Marjamäki
506d1ed68d
synthetic tests: add ub.c
2016-11-03 14:51:18 +01:00
Daniel Marjamäki
0836b999cf
update synthetic tests. removed uninit.c because there was not enough diversity. my goal is to have few tests with much diversity.
2016-11-03 09:40:22 +01:00
Matthias Krüger
c6c17c89c9
synthetic tests: add "make clean", make CC settable via env flags.
2016-11-02 19:02:10 +01:00
Daniel Marjamäki
ad6c82b2ca
Added Makefile to compile synthetic tests
2016-11-02 13:57:29 +01:00
Daniel Marjamäki
50d6a23f93
test/synthetic/uninit.c : add more tests
2016-11-02 12:35:08 +01:00
Daniel Marjamäki
ca19861aaa
Add some synthetic tests
2016-11-02 11:07:04 +01:00
Daniel Marjamäki
18f466a880
Test std::for_each
2016-11-02 10:01:56 +01:00
Daniel Marjamäki
fd67bbf2d3
Test std::count and std::count_if
2016-11-02 09:57:35 +01:00
Daniel Marjamäki
12319d705e
Try to fix 'make checkcfg'
2016-11-02 09:50:37 +01:00
Daniel Marjamäki
b90a17f64f
Test std::all_of, std::any_of, std::none_of
2016-11-02 09:29:15 +01:00
Daniel Marjamäki
6e762659c0
Test std::find_if and std::find_if_not
2016-11-02 09:13:54 +01:00
Daniel Marjamäki
223ce04986
Merge pull request #841 from zingsheim/FunctionParameter
...
Function parameter
2016-11-01 21:58:52 +01:00
Daniel Marjamäki
0e9810b7f6
CheckStl: validation of iterators returned from functions
2016-11-01 14:08:42 +01:00
Frank Zingsheim
d4f01583b6
Fixed TODO (check if function parameter is non-const reference etc..) by common function
2016-11-01 14:06:30 +01:00
Daniel Marjamäki
476789c1a7
Remove unused variable in test
2016-11-01 12:44:31 +01:00
Daniel Marjamäki
7f71ad8360
Test std::find()
2016-11-01 12:25:23 +01:00
Daniel Marjamäki
ea545e63c8
astyle formatting
...
[ci skip]
2016-10-27 17:11:32 +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
Frank Zingsheim
0162f76c63
TestIO: Refactoring. Use functions instead of macros.
2016-10-24 21:43:58 +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
213f9c1fc8
Fix testrunner
2016-10-21 02:20:51 +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
7242e661ef
checkcfg: add missing inline suppression for ignoredReturnValue of abs()
2016-10-18 22:35:54 +02:00
Matthias Krüger
0b6db67de2
checkcfg: add missing inline suppression for ignoredReturnValue of abs()
2016-10-18 22:20:06 +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
orbitcowboy
d5a145f288
std.cfg: Added <returnValue> information to isblank().
2016-10-18 11:00:12 +02:00
Daniel Marjamäki
4587dfffd8
Fix -Wshadow warnings
2016-10-17 15:45:16 +02:00
Daniel Marjamäki
57c5e0be3a
test that abs,isdigit,strlen are calculated properly
2016-10-17 14:16:08 +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
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
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
54959d1932
CheckLeakAutoVar: Distinguish between new and new[] ( #888 )
2016-10-09 10:28:19 +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
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
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
91d97c556d
Path: Add methods Path::isAbsolute() and Path::getCurrentPath()
2016-10-02 12:06:55 +02:00