Commit Graph

1244 Commits

Author SHA1 Message Date
Oliver Stöneberg c9c1f83a69
use `emptyString` more consistently (#4034) 2022-07-10 10:57:29 +02:00
chrchr-github bd92e7411c
Fix #11163 Hang on smart pointer with auto type deduction (#4250)
* Fix #11163 Hang on smart pointer with auto type deduction

* Format

* Format
2022-07-08 12:37:53 +02:00
Paul Fultz II 46fcdca5ee
Add debug_valuetype intrinsic (#4210) 2022-06-15 21:25:55 +02:00
chrchr-github 829ca9ab7f
Fix #10935 FP: compareBoolExpressionWithInt with enum and template parameter (#4193) 2022-06-10 20:40:37 +02:00
PKEuS 1275b5275e
LCppC backport: Various optimizations (#4182)
* Optimization: Use Token::eIncDecOp instead of expensive Token::Match calls

Merged from LCppC.

* Small Optimizations: - Moved a std::set that is only need during initialization of SymbolDatabase to function scope - Use std::vector instead of std::list

Merged from LCppC.

* Optimization: Refactorized various Token::Match calls and surrounding conditions

Merged from LCppC.

* Refactorization: Cleanup usage of std::multimap

Merged from LCppC.
2022-06-08 16:58:57 +02:00
chrchr-github e6f2929fac
Fix #11085 FN constVariable with range-based for (#4118) 2022-06-03 19:24:59 +02:00
chrchr-github 7fbb9c7c13
Fix #10980 FN constVariable with range-based for loop (#4144)
* Fix #10980 FN constVariable with range-based for loop

* Format

* nullptr check

* Restrict scopes

* Add const

* Undo

* Add more const
2022-05-29 17:06:33 +02:00
chrchr-github 2b723eafcb
Fix ValueType for references in range-based for loop (#4116)
* Fix ValueType for references in range-based for loop

* Format
2022-05-20 08:48:01 +02:00
Paul Fultz II fbba72ab5a
Fix 11057: FP danglingTemporaryLifetime with reference member (#4103)
* Fix 11057: FP danglingTemporaryLifetime with reference member

* Add test

* Format

* Use ast for number of arguments

* Get number of arguments using ast

* Skip aggregate constructor when there are too many arguments

* Format
2022-05-13 06:51:07 +02:00
chrchr-github a70d11adb6
Fix #11052 inline static global struct declaration interferes with checks (#4098) 2022-05-10 20:43:11 +02:00
Oliver Stöneberg c71033548f
fixed some clang-tidy warnings (#3080) 2022-05-08 20:42:06 +02:00
Paul Fultz II aafd1e10be
Fix 11006: FP uninitvar with unknown constant (#4056) 2022-04-28 10:48:37 +02:00
chrchr-github 7cedf3e0e5
Partial fix for #10983 False positive: returnTempReference with trailing return type (#4055) 2022-04-27 20:11:32 +02:00
chrchr-github 6b5df68677
Fix #11001 syntaxError for valid C code sizeof(enum ...) (#4045) 2022-04-26 07:22:53 +02:00
chrchr-github 7721cd14b6
Fix #10466 FP constVariable with pointer typedef (#4018)
* Fix #10466 FP constVariable with pointer typedef

* Fix flag check

* Use isStatic()
2022-04-13 21:56:45 +02:00
chrchr-github 938517b80a
Fix #10265 FP unused private method (#4015) 2022-04-13 14:49:28 +02:00
chrchr-github 38bc0ad4c3
Fix regression: wrong member variable (#3987) 2022-04-08 08:23:10 +02:00
Paul Fultz II 09c8cfb2ae
Fix 6624: false negative: std::vector out of bounds access not detected (#3980)
* Fix 6624: false negative: std::vector out of bounds access not detected

* Format

* Add test for auto

* Fix tests

* Format
2022-04-07 06:47:15 +02:00
chrchr-github 4c375e7224
Fix #9815 FP redundantInitialization with lambda / #10864 debug: valueFlowConditionExpressions bailout (#3970)
* Fix #9815 FP redundantInitialization with lambda

* Fix #10864 debug: valueFlowConditionExpressions bailout

* Format
2022-04-05 23:19:17 +02:00
chrchr-github b79885c6af
Fix #10174 debug: Executable scope 'x' with unknown function (#3972)
* Fix #10174 debug: Executable scope 'x' with unknown function

* Format
2022-04-05 07:34:06 +02:00
Paul Fultz II 39265f8ce0
Fix 10931: Assert failure in setSymbolic() (#3967)
* Fix 10931: Assert failure in setSymbolic()

* Format
2022-04-03 20:04:18 +02:00
chrchr-github a9f29fbc09
Fix #10307 FP functionStatic with class template and east-const / #10471 FP constParameter with std::array and east-const (#3963) 2022-04-01 23:26:44 +02:00
Paul Fultz II 32ded1602b
Fix warnings in switch statements on clang (#3943) 2022-03-30 19:30:02 +02:00
chrchr-github 81bcbfa7fe
Fix #10920 FP missingOverride with friend (#3955) 2022-03-28 22:44:04 +02:00
Paul Fultz II 4b4037540a
valueFlowUninit: Handle arrays and pod types (#3917)
* valueFlowUninit: Handle arrays and pod types

* Format

* Catch another array case
2022-03-24 06:35:44 +01:00
chrchr-github 200b098471
Fix #10516 FP for unused private function if address of function is taken (#3901) 2022-03-14 19:15:48 +01:00
chrchr-github 6376bac5bb
Fix #10451 syntaxError with typedef and lambda (#3900)
* Fix #10451 syntaxError with typedef and lambda

* Don't insert union into template argument list, add test

* Format

* Revert "Format"

This reverts commit 8c52d49c8b.

* Format
2022-03-14 17:59:29 +01:00
chrchr-github 190506db40
Fix #10737 Regression: unusedStructMember (#3894)
* Fix #10737 Regression: unusedStructMember

* Add test for #9161

* simpleMatch
2022-03-13 06:27:17 +01:00
Oliver Stöneberg 757287b13c
removed unnecessary varid0 inline suppressions (#3893) 2022-03-12 18:02:40 +01:00
chrchr-github 4c85ac0d7b
Fix #10852 FP unused struct member (inner struct in C code) (#3890)
* Fix #10852 FP unused struct member (inner struct in C code)

* Redundant findType() call, add test
2022-03-12 06:16:29 +01:00
chrchr-github ffd9f9a93f
Fix FP missingOverride with unnamed parameters (#3887) 2022-03-11 21:44:13 +01:00
chrchr-github 2616046461
Partial fix for #10848 FP: unusedStructMember (#3880) 2022-03-09 20:25:58 +01:00
chrchr-github 557263acde
Partial fix for #10848 FP: unusedStructMember (II) (#3881)
* Preliminary

* Fix member search, add tests
2022-03-09 18:22:30 +01:00
Oliver Stöneberg 4a63af02ed
enabled functionConst and functionStatic in selfcheck (#3862)
* fixed functionConst findings and enabled it in selfcheck

* fixed functionStatic findings and enabled it in selfcheck

* .travis_suppressions: adjusted comment

* testimportproject.cpp: added missing asserts
2022-03-02 07:46:47 +01:00
chrchr-github 05a6d09c5f
Fix #10360 FP uninitMemberVar from copy constructor [inconclusive] (#3748) 2022-02-27 19:15:19 +01:00
Oliver Stöneberg b6876d22e6
use inline suppressions for varid0 in selfcheck (#3842) 2022-02-21 18:35:02 +01:00
chrchr-github 9582032906
Fix #8485 FP uninitMemberVar - ctor calls function with smart pointer argument (#3835) 2022-02-16 07:02:26 +01:00
chrchr-github edc5106237
Fix #9092 FN missingOverride - subclass in namespace (#3793) 2022-02-12 08:19:07 +01:00
Oliver Stöneberg 6e57cc4323
small utils.h cleanup (#3821) 2022-02-11 19:44:08 +01:00
chrchr-github 24e9859158
Fix #10357 FP stlcstrParam due to incorrect overload resolution (#3813)
* Fix #10357 FP stlcstrParam due to incorrect overload resolution

* Variable shadowing
2022-02-10 11:17:06 +01:00
Paul Fultz II a639c59780
Fix 10787: False positive: knownConditionTrueFalse with a conditional exit (#3804) 2022-02-06 20:13:44 +01:00
Daniel Marjamäki 3989408738 Update copyright year 2022-02-05 11:45:17 +01:00
chrchr-github 511520d623
Fix #10679 FP constParameter with const/nonconst overload (#3780) 2022-02-02 19:38:32 +01:00
chrchr-github dad64bfcc8
Fix #10091 FP shadowFunction with default destructor implementation / Tests for #8635, #9776, #9940, #9951, #10018 (#3763) 2022-02-02 19:30:49 +01:00
chrchr-github d55010c441
Fix #9247 FP uninitMemberVar (inconclusive) (#3765) 2022-01-28 15:05:13 +01:00
chrchr-github f429245da2
Fix #8557 FP format string requires unsigned long (for sizeof(var)) (#3727) 2022-01-27 19:43:52 +01:00
Oliver Stöneberg 171da2e6f9
avoid dependency on transitive includes - based on include-what-you-use (#3757) 2022-01-27 19:03:20 +01:00
Paul Fultz II 1a949c00b0
Fix 10723: Assertion 'tok && tok->exprId() > 0 && "Missing expr id for symbolic value"' in valueFlowSmartPointer() (#3755)
* Fix 10723:  Assertion 'tok && tok->exprId() > 0 && "Missing expr id for symbolic value"' in valueFlowSmartPointer()

* Format
2022-01-26 06:28:13 +01:00
chrchr-github 9d6e5c2a05
Fix #10237 uninitMemberVar - member initialized via function call (#3745) 2022-01-24 21:52:00 +01:00
Paul Fultz II a7dbd288c4
Fix 10738: FP knownEmptyContainer with auto reference (#3734)
* Fix 10738: FP knownEmptyContainer with auto reference

* Format
2022-01-21 09:56:55 +01:00
chrchr-github c2fc4973ad
Fix #10515 False positive for explicit one-argument constructor if co… (#3718) 2022-01-17 20:51:23 +01:00
Paul Fultz II 4af98f21d6
Fix 10588: crash (#3691) 2022-01-16 12:33:31 +01:00
Paul Fultz II 55ff010df3
Fix 10717: Crash in SymbolDatabase::setValueTypeInTokenList (#3710)
* Fix 10717: Crash in SymbolDatabase::setValueTypeInTokenList

* Format
2022-01-15 07:56:56 +01:00
chrchr-github 781a145680
Fix regression: functionStatic related to overload resolution (#3705) 2022-01-14 17:55:50 +01:00
chrchr-github 1b89c998f5
Fix #10469 FP returnTempReference with overloaded operator+= (#3678) 2022-01-12 22:05:30 +01:00
shaneasd 8f7996211b
remove nullScope from TestSymbolDatabase (#3679) 2022-01-06 15:23:43 +01:00
chrchr-github 9fda86eb6d
Fix #9998 (#3676) 2022-01-06 15:21:05 +01:00
Oliver Stöneberg 0ba9cb4e64
fixed some unusedFunction warnings (#3618) 2022-01-04 15:48:08 +01:00
Armin Müller d5daba331f
Typos found by running "codespell" (#3659) 2022-01-02 08:12:08 +01:00
Daniel Marjamäki e6ccf299b9 Fixed #10598 (SymbolDatabase: final class is not parsed properly) 2021-12-22 21:48:01 +01:00
Daniel Marjamäki 77434d093e SymbolDatabase: Do not set wrong type for std::map etc items in range for loop 2021-12-11 15:16:54 +01:00
Paul Fultz II a03e731930
Track lifetimes of lambdas that capture the 'this' variable (#3594) 2021-12-04 17:00:55 +01:00
Paul Fultz II 853a1f6d54
Fix 10631: FP, Regression: error: Return value of allocation function 'makeThing' is not stored. (#3585) 2021-11-29 07:06:43 +01:00
Paul Fultz II 57f5b19b34
Fix 7812: False negative: return pointer of local variable (#3583)
* Fix 7812: False negative: return pointer of local variable

* Format

* Add test case for 3029

* Format
2021-11-28 15:25:21 +01:00
Paul Fultz II 1e327dfbd3
Fix 9836: False negative: No invalidContainer when using vector of vectors (#3580)
* Fix 9836: False negative: No invalidContainer when using vector of vectors

* Format
2021-11-26 13:38:40 +01:00
Rikard Falkeborn 085d25f1b1
SymbolDatabase: Fix valuetype with constexpr and auto (#3577) 2021-11-24 16:51:40 +01:00
Daniel Marjamäki 10109a5ef7 dumpfile: remove redundant Variable attributes isArgument and isLocal. Add isVolatile. 2021-11-19 17:21:27 +01:00
Daniel Marjamäki f701a9361d chmod; Use 644 for source files 2021-11-17 08:25:25 +01:00
Daniel Marjamäki 8b5865055a SymbolDatabase: Fix Variable pointer property for 'std::string x(*p)' 2021-11-17 08:22:49 +01:00
chrchr-github 9c31e0ce54
Fix #10393 FP returnDanglingLifetime (#3562) 2021-11-15 20:36:38 +01:00
Paul Fultz II 13f5b560ce
Fix 10555: FP knownConditionTrueFalse with non-const function in base class (#3559) 2021-11-12 20:05:43 +01:00
chrchr-github 629f883408
Fix #10097: autovarInvalidDeallocation with pointer to std::array (#3529) 2021-11-08 20:31:16 +01:00
Paul Fultz II 035c70c441
Fix 10578: Value not impossible after check (#3549) 2021-11-07 18:19:56 +01:00
Paul Fultz II e998cd13ca
Partial fix for 10393: FP returnDanglingLifetime when constructing string from iterators [inconclusive] (#3536) 2021-10-30 09:06:36 +02:00
Oliver Stöneberg ba777b54d1
prevent uncaught exception in ThreadExecutor::handleRead() (#3514) 2021-10-20 20:41:42 +02:00
Paul Fultz II 3cb252bd99
Fix 9873: False negative: null pointer when checking raw pointer (#3485) 2021-10-06 08:39:58 +02:00
chrchr-github 0c16e346f1
Minor: add endsWith() template, empy() check (#3472) 2021-09-28 20:34:21 +02:00
Daniel Marjamäki 045f21ee48 Fixed #10142 (FP uninitMemberVar with std::map) 2021-09-05 16:35:24 +02:00
Ken-Patrick Lehrmann b3b3b6b2a1
Fix handling of namespace scope with several bodystarts (#3438)
Follow up to 0093452bed.
Give the proper end to getVariableList, since it might not be bodyEnd.

Before that, getVariableList would add the same variables in several
unrelated scopes, and all kind of false positive would follow.

For instance, with the case I added in the unit-tests, I had:
```
../code.cpp:15:18: warning: The struct 'is_A' defines member variable with name 'foo' also defined in its parent struct 'is_A_impl'. [duplInheritedMember]
static const int foo = 8;
                 ^
../code.cpp:15:18: note: Parent variable 'is_A_impl::foo'
static const int foo = 8;
                 ^
../code.cpp:15:18: note: Derived variable 'is_A::foo'
static const int foo = 8;
                 ^
../code.cpp:15:18: style: struct member 'has_A::foo' is never used. [unusedStructMember]
static const int foo = 8;
                 ^
../code.cpp:15:18: style: struct member 'is_A::foo' is never used. [unusedStructMember]
static const int foo = 8;
                 ^
```
2021-09-04 11:09:33 +02:00
Paul Fultz II 1cd9d0479d
Fix 10433: assertion failure in ValueFlow (Interval::fromValues) (#3419) 2021-08-26 07:46:40 +02:00
chrchr-github ee4d90b4fa
Refactor: fix member shadowing, return by const ref (#3407) 2021-08-21 22:00:45 +02:00
Daniel Marjamäki 83270a6c52 Fixed #10376 (Cppcheck does not add some function arguments to the dump file) 2021-08-15 07:48:01 +02:00
Paul Fultz II fdaeaacc40
Symboldatabase: Improve valuetypes for containers, iterators, and smart pointers (#3398) 2021-08-14 19:00:58 +02:00
Paul Fultz II f946bbc249
Only add exprids to expression and not variable declarations (#3397) 2021-08-14 06:49:12 +02:00
chrchr-github e626e3065d
Fix MSVC warning: member shadowing (#3392) 2021-08-10 22:34:13 +02:00
Daniel Marjamäki c2305b1da7 Fixed #10396 (FP missingReturn on void operator=()) 2021-08-10 09:55:16 +02:00
Daniel Marjamäki 0093452bed SymbolDatabase; Better handling of namespace that is defined in several scopes 2021-08-10 07:00:11 +02:00
Daniel Marjamäki d82df7cc55 Fix self-check warning, condition is always true 2021-08-09 13:17:48 +02:00
Daniel Marjamäki 0cb6603055 SymbolDatabase; Use range based for loops 2021-08-09 12:43:21 +02:00
Paul Fultz II 7f358b2bed
Format with uncrustify (#3388) 2021-08-07 20:51:18 +02:00
Daniel Marjamäki 27a4df06d2 Revert "SymbolDatabase; First fix to handle when a namespace have many scopes"
This reverts commit e6cc7201b0.
2021-08-04 22:30:39 +02:00
Daniel Marjamäki e6cc7201b0 SymbolDatabase; First fix to handle when a namespace have many scopes 2021-08-04 20:36:43 +02:00
Daniel Marjamäki 0f0d042ee2 Refactoring; Use range for in SymbolDatabase 2021-08-01 21:51:37 +02:00
Paul Fultz II 00eb71fd49
Remove constexpr -> const simplification (#3346) 2021-07-22 07:22:26 +02:00
Paul Fultz II 8efe1d4ab4
Find reference to dangling unique ptr (#3344) 2021-07-20 21:30:27 +02:00
Daniel Marjamäki d1fe34e167 misra; implement rule 8.10 2021-07-18 21:18:07 +02:00
Paul Fultz II 59a1c1a9d8
Refactor: Remove variable analyzer (#3339) 2021-07-18 07:46:31 +02:00
Paul Fultz II 942202aede
Evaluate container sizes in forward analysis (#3338) 2021-07-16 18:49:07 +02:00
Daniel Marjamäki 24c17916af missingReturn; ensure Function::returnsVoid returns true when there is unknown macro 'void STDCALL foo() {}' 2021-07-12 20:29:20 +02:00
Daniel Marjamäki 7cb66d56f3 missingReturn; fixed false positive with trailing return type 2021-07-08 13:50:26 +02:00