Rikard Falkeborn
fc1d5b187f
leakNoVarFunctionCall: Use AST more ( fix #9252 ) ( #2086 )
...
Use the AST a little bit more to improve the check. In order to do so,
rewrite the check to work from the outer function first and then check
the arguments, instead of the other way around.
It also fixes Trac ticket #9252 , no warning is now given for
void* malloc1() {
return(malloc1(1));
}
This FP seems to be common in daca results.
It also makes it possible to improve handling of casts, for example
cppcheck now warns about
void f() {
strcpy(a, (void*) strdup(p));
}
But not for
char* f() {
char* ret = (char*)strcpy(malloc(10), "abc");
return ret;
}
These FP/FN were introduced when the check was switched to use the
simplified token list.
2019-08-14 22:01:40 +02:00
Rikard Falkeborn
f139558d90
Dmake cleanups ( #2077 )
...
* dmake: Refactor object files to separate function
No functional change.
* dmake: Use range for loops
No functional change.
* Add all external cpp files instead of open coding
No functional change.
* Remove duplicate check.h in lib.pri HEADERS
* Add missing newline
No functional change, but the readability of the generated Makefile is
slightly improved.
2019-08-14 20:53:51 +02:00
Paul Fultz II
4f76588f98
Fix issue 9275: False positive: Non-local object uses local variable ( #2084 )
2019-08-14 20:09:33 +02:00
Daniel Marjamäki
831f2009f5
GUI: Set current dir when starting the GUI so results are shown properly
2019-08-14 10:23:36 +02:00
Paul Fultz II
0c1dff5c93
Fix issue 9268: false negative: (style) Condition '...' is always true ( #2080 )
...
* Fix issue 9268: false negative: (style) Condition '...' is always true
* Fix copy and paste mistake
2019-08-14 06:34:27 +02:00
Paul Fultz II
13df5b2413
Fix FP with negative index and negated condition ( #2081 )
2019-08-14 06:32:31 +02:00
Daniel Marjamäki
d4549217d0
Renamed safeClassRefMember => unsafeClassRefMember
2019-08-13 20:58:31 +02:00
Daniel Marjamäki
ed7edc6d2a
Improve warning message
2019-08-13 20:42:25 +02:00
Daniel Marjamäki
41f8c1b281
Fixed #9271 (Safe classes: Class that store references)
2019-08-13 20:40:48 +02:00
Rikard Falkeborn
ffcceb097e
Memleak: Refactor check to separate function ( #2079 )
...
This makes all the checks in CheckMemoryLeakNoVar separate functions to
improve readability.
2019-08-13 13:00:59 +02:00
Paul Fultz II
c0c6f92221
Fix issue 8431 and 8776: Size of constant string
...
Fixes these cases:
```cpp
void f(void) {
const std::string msg="xyz";
if(!msg.empty()){} // Always true
}
```
And out of bounds access:
```cpp
#include <string>
char fstr1(){const std::string s = "<a><b>"; return s[42]; }
wchar_t fwstr1(){const std::wstring s = L"<a><b>"; return s[42]; }
```
2019-08-12 20:24:16 +02:00
Paul Fultz II
68e8253920
Fix issue 8313 and 7326: Track values of pointer aliases in valueflow
2019-08-12 12:58:53 +02:00
Daniel Marjamäki
aec217fede
astyle formatting
...
[ci skip]
2019-08-12 12:54:25 +02:00
Rikard Falkeborn
cd36f8ed0a
Fix #9253 : leakNoVarFunctionCall: do not warn if freopen opens standard stream ( #2076 )
...
This fixes false positives from daca@home where freopen is used to
reopen a standard stream. There is no longer a warning for
void f() {
assert(freopen("/dev/null", "r", stdin));
}
2019-08-12 12:53:59 +02:00
Paul Fultz II
aadc404958
Issue 8634: false negative: (style) Condition '...' is always true ( #2075 )
2019-08-12 11:04:01 +02:00
Daniel Marjamäki
2e9e3ed2f1
Fixed #8823 (false positive: MISRA rule 16.3)
2019-08-11 19:08:57 +02:00
Daniel Marjamäki
db57769c64
Try to make Travis happy
2019-08-11 17:57:59 +02:00
Daniel Marjamäki
016340f77d
Fixed #8657 (false postive: MISRA rule 15.7)
2019-08-11 17:54:02 +02:00
Daniel Marjamäki
6c55d27f19
Fixed #9240 (GUI: Issue with file names in suppressions (undesired expansion to full path))
2019-08-11 15:53:23 +02:00
Paul Fultz II
9aa97cbb95
Fix issue 8296: ValueFlow: value not set in conditional scope in subfunction ( #2071 )
...
* Fix issue 8296: ValueFlow: value not set in conditional scope in subfunction
* Refactor condition checkingg
* Make test case TODO
2019-08-11 15:39:37 +02:00
Daniel Marjamäki
46c93779d8
misra: updated getEssentialType
2019-08-11 10:15:07 +02:00
Daniel Marjamäki
43aabcd318
Fixed #8656 (false positive: MISRA rule 10.1)
2019-08-11 09:47:37 +02:00
Daniel Marjamäki
8c7ae14f0b
misra: python refactorings
2019-08-10 18:12:23 +02:00
Daniel Marjamäki
0edc4feb57
Try to make Appveyor happy
2019-08-10 08:46:27 +02:00
IOBYTE
5fc5e3728d
template simplifier: refactor TemplateSimplifier::TokenAndName into a… ( #2073 )
...
* template simplifier: refactor TemplateSimplifier::TokenAndName into a class
assert when more than one family flag is set
* fix function parameter names
2019-08-10 08:42:12 +02:00
Daniel Marjamäki
6a260929e2
CLI: error id from addon is <addon>-<id>
2019-08-10 07:43:47 +02:00
Daniel Marjamäki
0fbbe2ff23
Refactor load/write of cppcheck project. Reuse same string constants in cli and gui.
2019-08-09 21:15:02 +02:00
Daniel Marjamäki
16dc8a0540
GUI: Suppressing addon warnings
2019-08-09 19:00:09 +02:00
orbitcowboy
290791f54f
windows.cfg: Added support for more constants from https://docs.microsoft.com/en-us/windows/console/char-info-str
2019-08-09 14:46:47 +02:00
Armin Müller
785cc69644
Typos found by running "codespell" ( #2072 )
2019-08-08 21:05:28 +02:00
orbitcowboy
21dc69e3d1
windows.cfg: Added support for functions from https://docs.microsoft.com/en-us/windows/win32/api/versionhelpers/ .
2019-08-08 10:51:05 +02:00
orbitcowboy
27cc58db43
windows.cfg: Added missing <pure/>-tag to GetSysColour().
2019-08-08 08:13:29 +02:00
Paul Fultz II
bd02ca5ccb
Fix issue 9207: Not detected 'always true' and unreachable code
2019-08-08 07:46:47 +02:00
orbitcowboy
2df7ce21bf
windows.cfg: Added support for GetSysColor().
2019-08-07 17:05:54 +02:00
orbitcowboy
9133707d4a
windows.cfg: Added support for more constants
2019-08-07 16:56:56 +02:00
Daniel Marjamäki
9fa1a5a540
astyle formatting
...
[ci skip]
2019-08-07 08:05:46 +02:00
IOBYTE
c6c50567cf
Fix #9250 (Regression: crash in gcc testsuite) ( #2067 )
...
* Fix #9250 (Regression: crash in gcc testsuite)
* fix cppcheck warning
2019-08-07 08:05:02 +02:00
Ken-Patrick
cb0b057595
8706 ( #2066 )
...
* 8706
* Add test case for #8706
2019-08-07 08:04:10 +02:00
Ken-Patrick
9ec8886898
Use std::any_of in token.h ( #2065 )
...
[lib/token.h:964]: (style) Consider using std::any_of algorithm instead of a raw loop.
2019-08-07 08:02:07 +02:00
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
Daniel Marjamäki
ebcca4edd1
Improve --debug-warnings output for 'auto' tokens without type. Do not report that prematurely before the type is set properly.
2019-08-05 13:42:06 +02:00
Daniel Marjamäki
20278d9c92
Clarify signConversion warning message
2019-08-05 12:41:08 +02:00
Daniel Marjamäki
1718963d9f
Travis: Remove step the check clang sources. We can do this on daca@home.
2019-08-05 11:39:31 +02:00
Paul Fultz II
ffdd2dc793
Fix issue 8924: Re-enable valueFlowTerminatingCondition
2019-08-05 07:18:06 +02:00
Daniel Marjamäki
996000da52
Fixed #9208 (MISRA addon crashes on enum with constant expression)
2019-08-04 12:24:45 +02:00
IOBYTE
7ebc9d1b5f
Fix #9249 (Syntax error on valid C++) ( #2062 )
2019-08-04 10:24:44 +02:00
Daniel Marjamäki
510748134f
Fixed #9234 (FP unreadVariable - assignment via iterator)
2019-08-04 10:21:16 +02:00
Daniel Marjamäki
ce53931d00
Fixed #9251 (False positive: unininitialized variable (multi variables))
2019-08-03 21:12:34 +02:00
orbitcowboy
24431419f4
wxwidgets.cfg: Added support for more interfaces.
2019-08-03 19:58:40 +02:00
orbitcowboy
b4aec4e39d
wxwidgets.cfg: Added support for more interfaces.
2019-08-03 19:53:55 +02:00