Daniel Marjamäki
fc8c244675
CI: Add selfcheck using Cppcheck Premium. Activates Misra C++ 2008 and Cert C++ 2016 checkers. ( #5623 )
2023-11-06 15:31:47 +01:00
Oliver Stöneberg
8b0916c319
ValueFlow: improved `checkLevelNormal` message ( #5584 )
2023-11-03 21:05:56 +01:00
Oliver Stöneberg
989d276dde
removed the need for `Check` object in `CTU::getUnsafeUsage()` callback / some CheckUninitVar cleanups ( #5610 )
...
The `Check` objects were just created for that purpose so they basically
just were wrappers for the pointers passed into them and were
unnecessary.
2023-11-03 18:27:11 +01:00
Oliver Stöneberg
63e00ea918
fixed some "Variable can be made constexpr" Rider warnings ( #5615 )
2023-11-03 09:55:44 +01:00
Paul Fultz II
18373bc64b
Fix 12116: FP negativeContainerIndex with redundant assignment (regression) ( #5602 )
2023-10-29 00:11:03 +02:00
Oliver Stöneberg
a765a1310d
ValueFlow: omit unnecessary location information from `valueFlowBailoutIncompleteVar` ( #5583 )
...
This is unnecessary since we only issue it from a single location. It
also leads to a lot of unnecessary noise in the daca diff reports.
2023-10-23 10:13:10 +02:00
chrchr-github
26ba29c303
Fix #12086 FN passedByValue with index operator and namespaced function call ( #5574 )
2023-10-21 12:41:39 +02:00
chrchr-github
41bd28c0b3
Fix #12087 Library: add Container::Action::FIND_CONST ( #5579 )
2023-10-20 21:22:06 +02:00
Paul Fultz II
f2c8153231
Set the lower and upper bounds for variable that are only incremented or decremented ( #5523 )
...
Also, changed `isExpressionChanged` and `isThisChanged` to return the
token that is being modified and renamed the functions to
`findExpressionChanged` and `findThisChanged`.
2023-10-19 18:42:52 +02:00
Oliver Stöneberg
85fe627c68
fixed some typos ( #5562 )
2023-10-17 18:32:07 +02:00
chrchr-github
f13134a6a4
Refactoring: use init list, redundant init ( #5552 )
2023-10-15 14:51:12 +02:00
Oliver Stöneberg
ebb877adcc
gui/platforms.h: renamed `Platform` to `PlatformData` / Platform: removed unnecessary `cppcheck` namespace ( #5545 )
2023-10-13 16:02:04 +02:00
chrchr-github
e247e818ec
Fix #12052 FP: containerOutOfBounds ( #5534 )
2023-10-11 14:08:17 +02:00
chrchr-github
903eccb336
Fix #12039 FP knownConditionTrueFalse ( #5513 )
2023-10-06 09:53:24 +02:00
Oliver Stöneberg
fe8730cf0f
MathLib: renamed `to{U}LongNumber()` to `toBig{U}Number()` ( #5503 )
...
The name was misleading as it was actually a `long long` and also if we
ever move to an (optional) 128-bit value it wouldn't even less fitting.
We should name it to match our alias type.
2023-10-05 19:21:42 +02:00
Daniel Marjamäki
a52d2a23a0
Fix #12018 (False positive: null pointer, multiple arguments) ( #5509 )
2023-10-05 15:08:25 +02:00
chrchr-github
033cf64961
Avoid const_cast ( #5490 )
2023-09-28 18:20:43 +02:00
chrchr-github
f037edf586
Fix #11440 FN Moved value when using {} to initialize ( #5479 )
2023-09-26 10:04:22 +02:00
chrchr-github
775af5ec70
Add test for simplecpp#314 ( #5438 )
2023-09-14 09:41:39 +02:00
Paul Fultz II
e6632d93e3
Fix 11983: False positive: uninitialized variable ( #5443 )
2023-09-13 23:27:08 +02:00
Paul Fultz II
a1078f446a
Fix 11980: False positive returnDanglingLifetime returning pointer to stack array as std::string (by way of struct return value constructor) ( #5445 )
2023-09-13 21:26:37 +02:00
chrchr-github
1b5b74d1f3
Fix FP knownArgument (f'up to #11927 ) ( #5434 )
2023-09-11 20:02:00 +02:00
Oliver Stöneberg
639a4131c4
changed `bool_to_string()` to return `const char*` instead and use it in more cases ( #5385 )
2023-09-11 11:34:22 +02:00
Oliver Stöneberg
91070ca794
utils.h: added `startsWith()` and started using it ( #5381 )
...
This makes the code much more readable. It also makes it less prone to
errors because we do not need to specify the length of the string to
match and the returnvalue is clear.
The code with the bad returnvalue check was never executed and I added a
test to show that.
2023-09-08 19:30:25 +02:00
chrchr-github
4d5e84aa5f
Partial fix for #11927 FP knownArgument with unknown function type ( #5413 )
2023-09-08 16:41:07 +02:00
Paul Fultz II
fd12baaf89
Fix 11898: FP knownEmptyContainer ( #5394 )
2023-09-02 14:30:35 +02:00
Oliver Stöneberg
e7dd9cd793
enabled `readability-use-anyofallof` clang-tidy warning / added more checks to evaluate ( #5339 )
2023-08-31 09:04:51 +02:00
Daniel Marjamäki
7c992ced4c
Fixed #11901 (Performance regression: large array with strings) ( #5375 )
...
Analysis has slowed down a lot when there are many strings in an array.
2023-08-30 19:35:43 +02:00
chrchr-github
f6340c02da
Partial fix for #11894 FP knownArgument with function pointer ( #5366 )
2023-08-26 00:37:10 +02:00
chrchr-github
6ffe08c9b3
Fix #11886 performance regression (hang) in 2.12dev ( #5355 )
...
Or maybe we should just limit the recursion depth.
2023-08-22 21:01:52 +02:00
Paul Fultz II
03b952d5eb
Fix 11579: false negative: knownConditionTrueFalse with non-bool as bool parameter ( #5349 )
...
This adds a new checker to check for pointer to bool conversions that
are always known. I removed the previous knownConditionTrueFalse checks
since this was too noisy.
2023-08-20 22:32:41 +02:00
Paul Fultz II
a5cfa85e0d
Fix 11884: Hang in valueFlowGetStrLength ( #5352 )
2023-08-20 22:01:04 +02:00
Oliver Stöneberg
a92b10ca3b
fixes #11104 (avoid C++-only parsing when processing C code in parsedecl()) / also avoid remaining `Library::detect*()` calls ( #5346 )
2023-08-18 22:48:24 +02:00
chrchr-github
41bdd87d30
Fix #11875 : hang in hasBorrowingVariables() ( #5337 )
2023-08-18 21:02:08 +02:00
Oliver Stöneberg
3cf9100198
fixed #6316 (Use std::to_string() in place of MathLib::toString() ...) - deleted default implementation of `Mathlib::toString()` ( #5341 )
...
It was also used inconsistently and seemed to imply there is some
special handling which wasn't the case. It was just an alias for
`std::to_string()` for non-`double` types. So there was no need for it.
---------
Co-authored-by: Robert Reif <reif@earthlink.net>
2023-08-17 16:46:32 +02:00
Oliver Stöneberg
84a9b3a5f2
enabled and mitigated `modernize-use-equals-default` clang-tidy warnings / removed unnecessary default destructors ( #5335 )
2023-08-16 17:13:36 +02:00
chrchr-github
c257c70347
Fix #11546 FP danglingTemporaryLifetime with unknown member ( #5256 )
2023-08-14 14:32:35 +02:00
Paul Fultz II
52081ef08f
Add special function to match lifetimes ( #5320 )
...
This also removes the termination checking in `valueFlowUninit` as this
causes a lot of FNs.
2023-08-14 10:27:00 +02:00
Paul Fultz II
48c91abba6
Fix issue 11867: Assert failure in valueFlowContainerSize() ( #5317 )
2023-08-13 22:31:38 +02:00
Paul Fultz II
0901ba9a7e
Fix 11865: Assert failure in setSymbolic() ( #5318 )
2023-08-12 19:58:09 +02:00
chrchr-github
720ae01898
Fix #11353 FP uninitvar for struct member set via pointer ( #5314 )
2023-08-11 18:46:51 +02:00
Paul Fultz II
24479c60f9
Fix 11850: false negative: knownConditionTrueFalse with std::string::empty() after modification ( #5307 )
2023-08-09 20:33:44 +02:00
chrchr-github
47c9a941a0
Restore references ( #5303 )
2023-08-08 17:50:08 +02:00
chrchr-github
eee1221738
Use in-class initializers, default constructors, class -> struct ( #4842 )
2023-08-08 11:05:02 +02:00
chrchr-github
838b6b86e3
Fix #11862 FN constParameterPointer with increment ( #5291 )
2023-08-08 10:38:03 +02:00
Oliver Stöneberg
dcdf67a694
some `-Wdouble-promotion` Clang compiler warnings ( #4820 )
2023-08-07 20:44:25 +02:00
Oliver Stöneberg
e38a031ae6
ValueFlow: pass `SymbolDatabase` by reference into `ValueFlow::setValues()` ( #5295 )
2023-08-07 18:41:50 +02:00
Oliver Stöneberg
77c479a6c4
pass `TokenList` as reference into `ValueFlow::setValues()` ( #4868 )
...
This avoid lots of unchecked pointer dereferences.
There was a single case which checked it and that looked like a
leftover. The only way this might have been a `nullptr` pointer was
through several default constructors which were not used at all so I
removed them.
2023-08-04 18:17:27 +02:00
chrchr-github
faf8047050
Fix FP truncLongCastReturn on Windows ( #5262 )
2023-08-02 12:27:29 +02:00
Oliver Stöneberg
45de338f1b
cleaned up includes based on include-what-you-use / iwyu.yml: updated to yet another distro to get the latest version and updated the Chaotic-AUR key ( #5267 )
...
This is a mess. The version is AUR is still outdated and also doesn't
install anymore. Fedora 38 carries the latest version of it so use that
now. Keep the old steps in case we need to switch again in the future.
2023-08-02 10:36:17 +02:00