Daniel Marjamäki
b1abcc06df
Clang import; distinguish static variable
2020-01-27 13:00:52 +01:00
Daniel Marjamäki
830f901206
Fixed #9586 (Valuetype: Wrong type for 'true << 1')
2020-01-27 11:46:59 +01:00
Daniel Marjamäki
625da9af5c
SymbolDatabase: Use range for loop
2020-01-26 07:31:04 +01:00
Daniel Marjamäki
569523bbef
Clang import; Better handling of enums
2020-01-25 09:31:47 +01:00
Daniel Marjamäki
36a67c7022
Clang import; fixed ValueType::typeSize calls
2020-01-18 17:32:59 +01:00
Daniel Marjamäki
cefd7fb33f
Fix testrunner
2020-01-18 12:29:03 +01:00
Daniel Marjamäki
269d21e972
Clang import; Better array handling in sizeof()
2020-01-18 11:55:50 +01:00
Daniel Marjamäki
e78438e990
astyle formatting
...
[ci skip]
2020-01-12 10:32:47 +01:00
Daniel Marjamäki
668212ac2f
SymbolDatabase: Type lookup for clang type strings
2020-01-11 21:24:15 +01:00
Daniel Marjamäki
380cc78077
Clang; Run ValueFlow
2020-01-11 14:00:41 +01:00
Daniel Marjamäki
6b983a9587
Revert ValueFlow changes, there was unexpected problems in testrunner
2020-01-11 13:11:19 +01:00
Daniel Marjamäki
052eaba632
Clang; run ValueFlow analysis
2020-01-11 13:04:51 +01:00
Daniel Marjamäki
54a9b61329
Clang import; NamespaceDecl, varDecl4, varDecl5
2020-01-08 18:23:40 +01:00
Daniel Marjamäki
b829c4cebb
Clang import; Arrays
2020-01-07 12:19:06 +01:00
Daniel Marjamäki
8ea22edb4e
Clang Import; VarDecl
2020-01-06 13:47:19 +01:00
Ken-Patrick Lehrmann
b6d2c1b238
Fix github CI ( #2477 )
...
* Fix github CI
```
Checking lib/check.cpp: __CPPCHECK__=1...
lib/symboldatabase.h:719:5: warning: Class 'Function' has a constructor with 1 argument that is not explicit. [noExplicitConstructor]
Function(const Token *tokenDef);
^
Checking lib/templatesimplifier.cpp: __CPPCHECK__=1...
lib/symboldatabase.cpp:1754:33: warning: Condition 'settings' is always true [knownConditionTrueFalse]
const Library * const lib = settings ? &settings->library : nullptr;
^
lib/symboldatabase.cpp:1751:9: note: Assuming that condition '!settings' is not redundant
if (!settings)
^
lib/symboldatabase.cpp:1754:33: note: Condition 'settings' is always true
const Library * const lib = settings ? &settings->library : nullptr;
```
* Compile parseClangAstDump
2020-01-05 21:10:48 +01:00
Daniel Marjamäki
fa727185e5
Clang import; IfStmt
2020-01-05 19:18:32 +01:00
Daniel Marjamäki
b03bdfaf72
Import Clang ast dump (experimental)
2020-01-05 15:12:53 +01:00
Paul Fultz II
e07801a891
Fix issue 9563: new daca crash: findLambdaEndToken not finding end token ( #2472 )
2020-01-04 10:45:24 +01:00
Dmitry-Me
895910b769
Fixed #7159 (wrong handling of function parameters)
2019-12-31 18:26:12 +03:00
IOBYTE
ec4c979cd8
fix daca error: Internal Error: Invalid syntax ( #2452 )
...
* fix daca error: Internal Error: Invalid syntax
* fix cppcheck warnings
2019-12-18 11:48:36 +01:00
Paul Fultz II
9cb39b1d7e
Fix issue 9482: False positive: Reference to temporary returned using trailing return type ( #2413 )
2019-12-01 15:10:02 +01:00
Paul Fultz II
2bdb7dc236
Fix issue 9390: valueFlowTerminatingCondition bailout: Skipping function due to incomplete variable NULL ( #2412 )
...
* Fix issue 9390: valueFlowTerminatingCondition bailout: Skipping function due to incomplete variable NULL
* Uncomment keyword
* Add nullptr as well
2019-12-01 15:09:21 +01:00
Sebastian
c990d10ffa
Check for JSON error when parsing addon .json files + fixes ( #2374 )
...
* cppcheck.cpp: Check for JSON error when parsing addon .json files
This fixes that errors in JSON files given via `--addon=*.json` are
silently ignored and maybe only a part of the JSON file is used.
Now the error message which picojson can return is checked and a
corresponding error message is returned again by getAddonInfo().
* naming.json: Fix missing comma
* CLI: Fix naming violations detected by addon naming.py via naming.json
* Addon naming: Add argument for validating names of constants
* LIB: Rename functions/variables so they are valid, loosen naming rules
* GUI: Fix naming violations
2019-11-20 15:37:09 +01:00
Daniel Marjamäki
f5e3dc9a38
Improved fix for #8978 (False positive: Variable assigned value that is never used when assigning via iterator)
2019-11-17 12:08:21 +01:00
Paul Fultz II
c75bbbe253
Fix issue 9404: False positive: Either the condition 'if(x)' is redundant or there is possible null pointer dereference: a->x ( #2322 )
...
* Fix issue 9404: False positive: Either the condition 'if(x)' is redundant or there is possible null pointer dereference: a->x
* Use simpleMatch
* Add a test case for the FP
* Check if expression is changed
* Check for no return scope
* Use simpleMatch
2019-11-08 08:11:41 +01:00
Daniel Marjamäki
c7a23f126f
Fixed #9373 (False Positive - missingOverride)
2019-11-03 18:42:04 +01:00
Daniel Marjamäki
6d1c84e3a6
Fixed #9449 (SymbolDatabase: Function lookup fails when string literal is converted to bool)
2019-10-30 21:05:42 +01:00
IOBYTE
6b4a3bc830
fix #9431 (Invalid syntax error on valid C++ code) ( #2298 )
2019-10-26 17:39:46 +02:00
Georgy Komarov
72f07c8a33
Add MISRA checks for rules 21.1 and 21.12 ( #2284 )
...
* Add MISRA 21.1 check
This also required add static field for functions in symboldatabase.
* Add MISRA R21.12
* Use newer ASSERT macroses in tests
2019-10-26 08:32:46 +02:00
Daniel Marjamäki
dedee2b173
SymbolDatabase: Better ValueType handling for containers
2019-10-23 19:54:59 +02:00
Daniel Marjamäki
87f65230ae
SymbolDatabase: Better valuetype handling of container addition
2019-10-23 12:42:46 +02:00
Daniel Marjamäki
f131a99ae3
SymbolDatabase: Improved ValueType in range for loop
2019-10-23 11:52:29 +02:00
Daniel Marjamäki
c5c07b61a6
SymbolDatabase: Fix type for expression 'x = uint8_t(a[b])'
2019-10-22 20:40:36 +02:00
Daniel Marjamäki
223ceeb97f
SymbolDatabase: Do not set constructor flag for function in namespace
2019-10-20 18:12:52 +02:00
Daniel Marjamäki
82d8f3e7f5
SymbolDatabase: Fix crash if std::shared_ptr type is only forwarded, not defined
2019-10-20 17:00:15 +02:00
Rikard Falkeborn
5c061c1c12
Set correct type and size of string and char literals ( #2275 )
...
* Set correct type and size of string and char literals
Use that string and char literal tokens store the prefix. This makes
it possible to distinghuish between different type of string literals
(i.e., utf8 encoded strings, utf16, wide strings, etc) which have
different type.
When the tokens holding the string and character values have the correct
type, it is possible to improve Token::getStrSize() to give the correct
result for all string types. Previously, it would return the number of
characters in the string, i.e., it would give the wrong size unless
the type of the string was char*.
Since strings now can have different size (in number of bytes) and
length (in number of elements), add a new helper function that returns
the number of characters. Checkers have been updated to use the correct
functions.
Having the size makes it possible to find more problems with prefixed
strings, and to reduce false positives, for example in the buffer
overflow checker.
Also, improve the stringLiteralWrite error message to also print the
prefix of the string (if there is one).
* Add comment and update string length
2019-10-20 07:11:57 +02:00
IOBYTE
5658dfcaf3
better fix for #9392 that also handles namespaces ( #2282 )
2019-10-18 18:05:48 +02:00
Daniel Marjamäki
7d6d561c84
SymbolDatabase: Better handling of function call using smart pointer
2019-10-15 19:33:25 +02:00
Daniel Marjamäki
4a4b4963cc
SymbolDatabase: Fix function lookup for '::func()'
2019-10-15 12:39:02 +02:00
Daniel Marjamäki
bf61bcf402
ValueType: Set ValueType for constructor calls
2019-10-14 09:19:16 +02:00
Paul Fultz II
19cf636a4a
Move necessary code into valuetype ( #2265 )
...
* Fix parsing of smart pointers
* Improve deduction of return type
* Valuetype computation for decayed pointers
2019-10-12 11:40:02 +02:00
IOBYTE
f99e83ece0
Fix #9411 (new daca crash related to using namespace) ( #2264 )
2019-10-12 11:39:14 +02:00
IOBYTE
fe1f601b91
Fix #9389 ("debug: Executable scope 'x' with unknown function." with … ( #2261 )
...
* Fix #9389 ("debug: Executable scope 'x' with unknown function." with "using namespace")
* use static rather than anonymous namespace for new functions
2019-10-10 20:25:09 +02:00
orbitcowboy
a9386fa093
Running astyle [ci skip]
2019-10-10 08:17:41 +02:00
Daniel Marjamäki
0c1e979af7
SymbolDatabase: Refactor handling of variable declarations in if condition
2019-10-09 22:27:48 +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
Daniel Marjamäki
1abf70a7cb
SymbolDatabase: Add null pointer check for ast operand for '(' token
2019-10-08 17:53:29 +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