11350 Commits

Author SHA1 Message Date
Daniel Marjamäki
35a3a34632 Revert "SymbolDatabase: Use ValueType::matchParameter"
This reverts commit cea00a8e09eb3c982aa849ea9932c1348d18e7bd.
2019-07-31 12:07:07 +02:00
Daniel Marjamäki
cea00a8e09 SymbolDatabase: Use ValueType::matchParameter 2019-07-31 11:20:43 +02:00
orbitcowboy
a9bdf99e07 std.cfg: Added *experimental* support for math constants liken M_PI. These are *NOT* standard, but they are supported by GCC/Clang and VS. 2019-07-31 11:11:01 +02:00
Daniel Marjamäki
728ac6ae2e SymbolDatabase: Use ValueType::matchParameter for char literal parameters 2019-07-31 09:35:32 +02:00
rebnridgway
e629f9a90f Calculate token scopes in advance rather than as the tokenlist is iterated (#2038)
* Removed redundant scope calculation

* Add scope propagation code to insertToken

* Add relevant scope code to Token class

* Add code to calculate the scope of Tokens

* Add calculateScopes method to class

* Add missing include for shared_ptr
2019-07-31 09:19:27 +02:00
IOBYTE
9436f72a94 Fix daca dnsdist crash (#2053) 2019-07-31 09:18:43 +02:00
Daniel Marjamäki
e58e51ee14 SymbolDatabase::findFunction: For string literal, a std::string parameter is a better match than a void* parameter 2019-07-30 21:20:01 +02:00
Daniel Marjamäki
f5c269a191 SymbolDatabase: Use ValueType::matchParameter for string literal parameters 2019-07-30 21:02:35 +02:00
Daniel Marjamäki
d5d50d9b17 ValueType::matchParameter: Improved constness matching 2019-07-30 09:19:51 +02:00
Daniel Marjamäki
914430dede Appveyor: A quick fix to make Appveyor happy, revert the changes 2019-07-30 07:59:28 +02:00
Daniel Marjamäki
88e3199372 SymbolDatabase: Use ValueType::matchParameter for numeric literal parameters 2019-07-30 07:48:14 +02:00
Daniel Marjamäki
bf219aecde SymbolDatabase::findFunction: Use ValueType::matchParameter for expression parameters 2019-07-30 07:14:05 +02:00
Daniel Marjamäki
f13b1a0bce SymbolDatabase: Use ValueType::matchParameter for boolean parameters 2019-07-29 22:58:12 +02:00
Daniel Marjamäki
ed5ae7c5fa SymbolDatabase::findFunction: Use ValueType::matchParameter for float literal parameters 2019-07-29 21:53:39 +02:00
Daniel Marjamäki
cccbfaa0e4 SymbolDatabase::findFunction: Use getArguments utility function 2019-07-29 21:17:31 +02:00
Daniel Marjamäki
3ad9d6a1ad Make the code a bit more robust 2019-07-29 20:57:16 +02:00
Daniel Marjamäki
f63011c219 Try to fix daca@home crashes 2019-07-29 19:06:41 +02:00
Daniel Marjamäki
9e738db435 SymbolDatabase: expand usage of ValueType::matchParameter for non-pointer variables 2019-07-29 18:46:50 +02:00
Daniel Marjamäki
3066c0653c Fixed #8668 (SymbolDatabase: Wrong findFunction match for const pointer argument) 2019-07-29 18:14:23 +02:00
Daniel Marjamäki
607b3daca8 ValueFlow: Improve bailout for structs etc in loops 2019-07-29 15:51:48 +02:00
Daniel Marjamäki
a1214348c0 Fixed #8974 (false negative regression about never used variable) 2019-07-29 08:49:19 +02:00
IOBYTE
07ac6c5f08 Fix ternary operator simplification to accept template parameters. (#2048)
Also simplify decltype of bool and numeric literals in template
arguments.
2019-07-28 21:52:52 +02:00
IOBYTE
badc573b80 Fix #9224 (Performance regression in template parsing: 250x - 1200x slower) (#2046) 2019-07-28 09:25:18 +02:00
Daniel Marjamäki
e8ec6e6f11 Fixed #8349 (Noisy nullPointerRedundantCheck) 2019-07-27 20:03:06 +02:00
Rikard Falkeborn
0324bbf63c dmake: Fix check of last header file in lib.pri (#2045)
Since the number of test files is larger than the number of lib files,
this only caused an extra harmless '\' being printed after the last
header file in lib.pri. If the number of test files would have been
smaller than the number of lib files, the generated lib.pri would have
been broken.
2019-07-27 09:45:04 +02:00
Daniel Marjamäki
1c75257212 Token::hasKnownIntValue: Fix when there is one possible int value and one known BUFFER_SIZE value, it should return false. 2019-07-27 08:25:07 +02:00
Rikard Falkeborn
f95d193e22 Fix #8282 (memleak FP when returning std::pair) (#2039) 2019-07-26 07:03:58 +02:00
Paul Fultz II
ee28a45db4 Fix issue 9235: new crash in astutils isVariableChanged from endless recursion (#2040) 2019-07-26 07:03:21 +02:00
Paul Fultz II
b049fd9303 Improve propogation of lifetimes of function arguments
This will now warn for cases like this:

```cpp
int* f(int * x) {
    return x;
}
int * g(int x) {
    return f(&x);
}
````
2019-07-26 07:02:07 +02:00
Rikard Falkeborn
a69a570505 Fix FP leakVarNotUsed with freopen() and stdin (#2034)
One usecase for freopen() is to redirect input and output streams to
files. For that, the return value is not needed.
2019-07-25 21:09:23 +02:00
Daniel Marjamäki
9009eeb83d Tweak Function::isSafe() 2019-07-25 20:52:24 +02:00
Daniel Marjamäki
4611cbb5bb One more fix for Function::isSafe 2019-07-25 17:31:52 +02:00
Daniel Marjamäki
09be07f2b2 Fix Function::isSafe 2019-07-25 17:28:32 +02:00
Daniel Marjamäki
45d1ca6f7c Safe checks: Clarify a warning message 2019-07-25 17:19:51 +02:00
Paul Fultz II
744a94ad5a Fix issue 9231: FP constParameter - argument passed parent ctor (#2032) 2019-07-24 20:59:58 +02:00
IOBYTE
999d2f797c Fix #9225 (Crash on valid C++14 code) (#2031)
* Fix #9225 (Crash on valid C++14 code)

This only fixes the crash. Specialization of nested templates is still
broken.

* fix cppcheck warnings

* fixed another cppcheck warning
2019-07-24 19:20:19 +02:00
Daniel Marjamäki
bbcffce529 Fixed #9062 (False positive "condition is always true") 2019-07-24 19:16:35 +02:00
Daniel Marjamäki
e11dcc609b Fixed #7758 (Function array is seen as Uninitialized) 2019-07-24 18:20:23 +02:00
Daniel Marjamäki
7c0b011c05 Fixed #9230 (Improve check: integer conversion overflow in return) 2019-07-24 16:17:52 +02:00
Daniel Marjamäki
2da75d5af4 Split up Cppcheck attribute. low and high values can be specified separately and they can be used for variables also. 2019-07-24 15:08:26 +02:00
versat
641b350cf7 astutils.h: Remove conflicting function declaration for isAliased()
This function was made static with commit 6c82685fbfc3c581a8176d4e55d8d40726486658
2019-07-24 13:23:54 +02:00
Daniel Marjamäki
fb7f18ddea ValueFlow: fix false detection of duplicate values 2019-07-24 12:30:33 +02:00
Daniel Marjamäki
cab9f61b79 safe checks: Handle float parameters 2019-07-24 12:09:13 +02:00
Daniel Marjamäki
e0738c48d2 simplify code 2019-07-24 11:40:51 +02:00
Daniel Marjamäki
10be2a1941 Safe checks: container parameters 2019-07-24 11:39:35 +02:00
Daniel Marjamäki
6c82685fbf Fixed compiler warnings 2019-07-24 11:01:38 +02:00
Paul Fultz II
bb52a63c4e Add check for const variables
When a local reference is declared, this will check if that local reference can be declared as `const`.
2019-07-24 09:59:01 +02:00
Paul Fultz II
4c3191e577 Lower recursion limit when using asan (#2013) 2019-07-24 09:57:53 +02:00
Daniel Marjamäki
753efb4c9b Function::isSafe: handle global/namespace functions better 2019-07-24 08:23:05 +02:00
Daniel Marjamäki
3ec45acc43 astyle formatting
[ci skip]
2019-07-24 08:22:12 +02:00