Daniel Marjamäki
0c1e979af7
SymbolDatabase: Refactor handling of variable declarations in if condition
2019-10-09 22:27:48 +02:00
Daniel Marjamäki
5b9bc4918e
ExprEngine: Better error output when solver fails
2019-10-09 22:16:30 +02:00
Daniel Marjamäki
63bd182e83
ExprEngine: Adapt to z3 handling of bool/int expressions
2019-10-09 20:18:17 +02:00
Sebastian
4d305d5c54
googletest.cfg: Fix #9397 (syntaxError when macro is unknown) ( #2255 )
...
Also add test in googletest.cpp
2019-10-09 19:53:58 +02:00
Daniel Marjamäki
9f4db5018d
SymbolDatabase: Added testcase for variable in if-scope
2019-10-09 16:41:07 +02:00
Daniel Marjamäki
3776604f06
SymbolDatabase: Add variable in if condition 'if (auto x = bar())'
2019-10-09 15:55:54 +02:00
versat
7e8ee31678
gtk.cfg: Add missing function configurations reported by daca@home
...
Add configuration for some g_value_*() functions and for
g_variant_unref().
2019-10-09 14:10:18 +02:00
Daniel Marjamäki
273a1a7402
ExprEngine: Fix FP for 'int' overflows
2019-10-09 11:24:57 +02:00
Sebastian
b7e48a9b27
Fix #9399 (Build Failure on x86: error: unknown type name '__int128_t') ( #2254 )
...
https://stackoverflow.com/questions/16088282/is-there-a-128-bit-integer-in-gcc
suggests to test for __SIZEOF_INT128__. This test is added now and
Cppcheck now also compiles for a 32 bit target with the expected
warning that there is no 128-bit integer. "make test" also works.
2019-10-09 10:25:21 +02:00
Daniel Marjamäki
ab6354754f
ExprEngine: Catch z3::exception and print message
2019-10-09 09:42:18 +02:00
Mathias Schmid
1df97ac5c8
Add check for MISRA-C 2012 rule 4.2 - Trigraphs should not be used - as well as some test cases. ( #2253 )
2019-10-09 08:26:05 +02:00
Daniel Marjamäki
c04e25e936
Revert " #9391 Detecting uninited member variables with default ctor ( #2249 )"
...
This reverts commit 08bc369296
.
2019-10-09 08:17:47 +02:00
Daniel Marjamäki
b27fe83da4
ExprEngine: Handle << and >>
2019-10-08 21:38:10 +02:00
Daniel Marjamäki
3e50150dbf
ExprEngine: Fix the checking for integer overflows
2019-10-08 20:13:25 +02:00
Daniel Marjamäki
47e9504083
astyle formatting
...
[ci skip]
2019-10-08 19:33:32 +02:00
blacktea
08bc369296
#9391 Detecting uninited member variables with default ctor ( #2249 )
2019-10-08 19:33:07 +02:00
IOBYTE
c98732dd8b
fix using type aliases in out of class destructors ( #2250 )
2019-10-08 19:30:41 +02:00
Daniel Marjamäki
1abf70a7cb
SymbolDatabase: Add null pointer check for ast operand for '(' token
2019-10-08 17:53:29 +02:00
Steve Mokris
506a952ad2
Parse `extern "C"`, and use it to avoid FP reference warnings ( #2234 )
...
Previously, cppcheck discarded the `extern "C"` specifier. This patch modifies cppcheck to parse each as a Scope in the symbol database, then uses that scope to avoid false positives when making recommendations about changing a function argument to be a reference (since variable references is a C++ feature, unavailable in C, and thus unavailable in `extern "C"`).
2019-10-08 17:48:09 +02:00
Daniel Marjamäki
9f40341ba8
SymbolDatabase: Hardcoded handling for std::make_shared and std::make_unique , todo: library configuration would be better than hard coding
2019-10-08 17:19:24 +02:00
versat
c9b95d7d49
opengl.cfg: Add configuration for glMaterial*() functions
2019-10-08 12:54:16 +02:00
Daniel Marjamäki
79356b1883
SymbolDatabase: Better ValueType handling of 'LibraryType(..)'
2019-10-08 11:25:05 +02:00
Sebastian
75e4e70ce4
Fix #9299 (Makefile: tools/matchcompiler.py is executed via Python 2) ( #2247 )
...
Check if "python" is available, if not check for "python3" and use
the available Python interpreter. If no Python interpreter is found,
"make" fails with an according error message.
This solves the issue that not all modern Linux distributions any longer
install Python 2 by default, so "python" is not available and
"make MATCHCOMPILER=yes" would fail. Instead of forcing the users to
install Python 2, Python 3 is used in such a case now if it is
available.
2019-10-08 10:55:40 +02:00
Rikard Falkeborn
d27e70db8e
bump simplecpp ( #2245 )
2019-10-08 10:38:22 +02:00
versat
93e9e12aa1
gtk.cfg: Add some missing g_str*() functions found by daca@home
2019-10-08 10:01:38 +02:00
Paul Fultz II
4eb4762d95
Extend lifetime checking to temporaries ( #2242 )
...
* Use lifetimes to check for returning reference to temporaries
* Check for dangling temporaries
* Check for unknown types for returining by reference
* Remove old returnTemporary check
* Format
* Check for deref op
* Ternary operator return an lvalue reference
* Warn when returning temporaries from member functions
* Improve handling of pointer to function
* Extend lifetimes of const references
2019-10-08 09:28:39 +02:00
Daniel Marjamäki
21774cbdc4
ExprEngine: Handle while/for loops
2019-10-07 17:45:06 +02:00
versat
b76be4581e
ruby.cfg: Add some *2NUM(), FIX2*() and NUM2*() functions
...
Reference: No useful documentation found. Used the Ruby 2.6 header files
and different web sites for creating the configurations.
2019-10-07 15:34:42 +02:00
versat
682c5c2040
qt.cfg: Add configurations for more global functions
...
Reference: https://doc.qt.io/qt-5/qtglobal.html
2019-10-07 12:06:16 +02:00
Rikard Falkeborn
443fcd2ac4
TestBufferOverrun: Enable passing tests ( #2246 )
...
There are a number of tests and asserts in testbufferoverrun that pass.
Enable them to add test coverage.
2019-10-07 09:17:12 +02:00
Daniel Marjamäki
d82b1b29ce
ExprEngine: Initial handling of switch
2019-10-06 19:58:51 +02:00
Daniel Marjamäki
05aae9569b
ExprEngine: Execute false execution path even if there is no else, upon Z3 exception assume that value is in range (safe option)
2019-10-06 18:26:40 +02:00
Daniel Marjamäki
6c0c9ba6d3
ExprEngine: Handle 'break' and 'while (0);'
2019-10-06 17:43:30 +02:00
Daniel Marjamäki
dcf8a7213f
ExprEngine: ExprData::getConstraintExpr
2019-10-06 14:47:50 +02:00
IOBYTE
78b9fd9bb9
Fix #9383 ("debug: Function::addArguments found argument 'x' with varid 0." with variadic templates) ( #2238 )
2019-10-06 12:45:42 +02:00
Daniel Marjamäki
3c085fd88a
Fixed #9359 (SymbolDatabase: function lookup fails when -funsigned-char is used)
2019-10-06 12:05:58 +02:00
Tyson Nottingham
0950a97df2
Fix false negatives in checkBitwiseOnBoolean ( #2220 )
...
* Fix false negatives in checkBitwiseOnBoolean
Use AST-based tests in favor of token-based tests for greater coverage.
* Travis: add suppressions for bitwiseOnBool
2019-10-06 09:57:31 +02:00
Daniel Marjamäki
b97436e8f8
Fixed #9382 (Hang: CheckLeakAutoVar pellepl/spiffs/src/spiffs_hydrogen.c)
2019-10-06 09:52:05 +02:00
IOBYTE
8f46bb3ef6
fix #9392 (SymbolDatabase: Weird default constructor outside class) ( #2243 )
2019-10-06 07:21:12 +02:00
Daniel Marjamäki
7294145797
SymbolDatabase: set value type for std::move()
2019-10-05 19:57:52 +02:00
Daniel Marjamäki
4e525e52ec
ExprEngine: Avoid endless recursion for struct members that have struct type
2019-10-05 18:29:41 +02:00
Daniel Marjamäki
e686699294
ExprEngine: Fix ExprEngin::IntRange::isIntValueInRange
2019-10-05 16:33:40 +02:00
Daniel Marjamäki
954e98cc03
astyle formatting
...
[ci skip]
2019-10-05 16:32:43 +02:00
Paul Fultz II
cf1c766292
Fix issue 9317: False positive returnDanglingLifetime when using reference to constant inside if statement ( #2241 )
2019-10-05 16:32:20 +02:00
Paul Fultz II
6b6553e320
Dont warn for arrays that are containers ( #2240 )
2019-10-05 16:14:30 +02:00
Daniel Marjamäki
887825d834
astyle formatting
...
[ci skip]
2019-10-05 15:42:47 +02:00
IOBYTE
46f3f58e5f
Fix #9388 ("debug: Executable scope 'x' with unknown function." with alias used in initialization list) ( #2239 )
2019-10-05 09:34:37 +02:00
Sebastian
bfbfeefbb3
reduce.py: Allow reducing error messages, print output in case of error ( #2179 )
...
* reduce.py: Allow reducing error messages, print output in case of error
Allow reducing code that triggers (false positive) error messages.
Print Cppcheck output in case Cppcheck returns unsuccessfully and no
segfault is expected. This helps fixing messed up command lines (for
example issues with the path).
* Use "else" as suggested
2019-10-04 21:22:59 +02:00
Daniel Marjamäki
fcccd5f42e
ExprEngine: Small tweaks
2019-10-04 17:58:18 +02:00
IOBYTE
c32a568c1f
fix #8965 ("(debug) Executable scope 'x' with unknown function." with rvalue parameter in method) ( #2237 )
...
I fixed the AST enough to pass testrunner but I don't believe it is
correct.
This code:
void Foo4(int&&b);
has this AST:
( 'void'
|-Foo4
`-&& 'bool'
|-int
`-b 'signed int'
but I don't believe && should have `bool`.
2019-10-04 12:30:11 +02:00