chrchr-github
c50339804b
Fix internalAstError with switch/case ( #4739 )
2023-01-26 20:11:45 +01:00
Oliver Stöneberg
41849b1a78
generate `*.vcxproj` file lists with `dmake` ( #4652 )
2023-01-21 11:55:36 +01:00
Oliver Stöneberg
38abeccd24
added command-line option `--disable=<id>` to disable individual checks ( #4712 )
2023-01-21 10:39:44 +01:00
chrchr-github
7945b835e1
Add support for std::string_view::substr() ( #4729 )
2023-01-20 15:46:06 +01:00
Oliver Stöneberg
99acd3145e
bumped simplecpp to 9dc2c3df53
( #4726 )
2023-01-20 15:41:32 +01:00
Oliver Stöneberg
a8fd5cbaf4
added `entrypoint` to library configuration and got rid of hard-coded ones ( #4691 )
2023-01-18 20:52:33 +01:00
chrchr-github
3076f9def1
Fix #11449 Function call not recognized with extra parentheses / FP nullPointer ( #4703 )
2023-01-18 20:38:37 +01:00
chrchr-github
dfd3e8ac55
Partial fix for #11378 : No implicit int in C++ mode ( #4696 )
2023-01-18 20:37:00 +01:00
chrchr-github
7515305581
Add test for #10413 ( #4687 )
2023-01-18 17:30:22 +01:00
chrchr-github
0b62c73ff0
Fix spurious variable declaration with unknown macro and using ( #4698 )
2023-01-18 17:11:41 +01:00
chrchr-github
c4784a1552
Partial fix for #11378 internalAstError regressions (iscpp11init) ( #4700 )
2023-01-18 17:09:55 +01:00
chrchr-github
9cf934c10d
Improve handling of 'final' in class declaration ( #4706 )
2023-01-18 17:08:43 +01:00
chrchr-github
dee2ad8756
Fix #10337 FP selfAssignment ( #4682 )
2023-01-18 16:59:56 +01:00
chrchr-github
a2fea3d9b4
Fix #11083 FP knownConditionTrueFalse with reassigned pointer ( #4717 )
2023-01-18 16:57:22 +01:00
chrchr-github
f8f66aeea9
Improve std.cfg: std::addressof(), std::stringstream::str() ( #4710 )
...
* Improve std.cfg: std::addressof(), std::stringstream::str()
* Format
* Add <leak-ignore/>
2023-01-16 22:08:31 +01:00
chrchr-github
6e2cc450b8
Fix #11330 FN functionConst with access of smart pointer ( #4720 )
...
* Fix #11330 FNfunctionConst with access of smart pointer
* Simplify
2023-01-16 22:07:04 +01:00
Oliver Stöneberg
124668979c
replaced some `std::ostringstream` usage with `std::to_string()` ( #4719 )
2023-01-16 22:05:33 +01:00
chrchr-github
a102ff3c2f
Fix #11485 FN unusedFunction / Fix #7739 FP unusedFunction ( #4707 )
2023-01-14 20:16:55 +01:00
chrchr-github
a79dff15ab
Fix #11492 FP uninitvar with try/catch ( #4711 )
2023-01-14 20:14:38 +01:00
chrchr-github
7bbdc95f25
Fix #11473 FP constVariable / #11448 FP constParameter / #11188 FP danglingTempReference ( #4680 )
...
* Fix #11473 FP constVariable with range-based for / #11448 FP constParameter with unused non-const range loop variable
* Fix ValueType / #11188 FP danglingTempReference with auto
* Fix ValueType in range-based for
* Update symboldatabase.cpp
2023-01-11 22:04:06 +01:00
chrchr-github
491721a6ff
Fix spurious variable declaration with unknown macro ( #4694 )
2023-01-09 16:11:26 +01:00
Oliver Stöneberg
8cc3e0b2ff
errortypes.h: use `enum class` instead of wrapping types into classes ( #4693 )
2023-01-08 19:31:54 +01:00
chrchr-github
911d610f2d
Fix #11486 FN unusedFunction when enum value with same name exists ( #4690 )
2023-01-08 14:30:42 +01:00
Paul Fultz II
cefc105c5f
Fix 11468: false positive danglingTempReference warning ( #4679 )
2023-01-07 23:44:22 +01:00
chrchr-github
b29f111082
Improve qt.cfg: unreadVariable for macro parameter ( #4683 )
2023-01-07 23:29:47 +01:00
chrchr-github
4ebdf5fae1
Fix #11478 FP identicalConditionAfterEarlyExit when passing *this ( #4684 )
2023-01-07 22:10:07 +01:00
Paul Fultz II
6020feb271
Fix 11461: arrayIndexOutOfBounds false positive ( #4686 )
2023-01-07 22:09:17 +01:00
chrchr-github
4c1c506d21
#11472 FP returnTempReference with cast and scope operator ( #4676 )
2023-01-02 22:13:56 +01:00
chrchr-github
2007cd0a1d
Fix #11465 FP returnDanglingLifetime/returnTempreference with typeid ( #4675 )
2023-01-02 17:46:03 +01:00
chrchr-github
f793b7dd35
Fix #11460 unintvar false positive ( #4674 )
...
* Fix #11460 unintvar false positive
* Format
2023-01-02 17:44:52 +01:00
chrchr-github
11f1a9d1f5
Fix crash on ternary with omitted operand ( #4673 )
...
* Fix MSVC compiler warning
* Fix crash on incomplete ternary operator
* Revert "Fix crash on incomplete ternary operator"
This reverts commit 28df0f0ab6ff794e733617447f847a97c1a7a609.
* Handle ternary with omitted operand
2023-01-02 17:44:17 +01:00
Daniel Marjamäki
bf11cdf299
TestCmdLineParser: Add tests for ignored paths
2023-01-01 15:32:37 +01:00
Oliver Stöneberg
0c95971c54
added .gitattributes and normalized files ( #4668 )
2022-12-30 21:33:45 +01:00
Oliver Stöneberg
1cfe49e340
use `const_iterator` where possible ( #4662 )
2022-12-30 15:13:47 +01:00
orbitcowboy
3136a50b97
Formatting [ci skip]
2022-12-22 11:59:10 +01:00
orbitcowboy
347c10db3b
posix.cfg: Improved configuration of mq_timedsend().
2022-12-22 11:58:32 +01:00
orbitcowboy
f5b9445767
posix.cfg: Added support for more posix_trace..() functions
2022-12-22 11:48:51 +01:00
orbitcowboy
3c57752c9b
posix.cfg: Added support for more posix_trace..() functions
2022-12-22 11:39:00 +01:00
orbitcowboy
5991c33b0e
posix.cfg: Added support for pthread_attr_getstack() and pthread_attr_setstack().
2022-12-22 10:07:50 +01:00
orbitcowboy
ccbc6a3b72
gnu.cfg: Added support for gethostbyname_r() and gethostbyname2_r()
2022-12-22 09:47:19 +01:00
orbitcowboy
3576f0a0c7
gnu.cfg: Added support for gethostbyaddr_r()
2022-12-22 09:36:53 +01:00
orbitcowboy
ea56359a3f
posix.cfg: Added nullPointer test for setkey()
2022-12-22 09:36:18 +01:00
orbitcowboy
24a71144f6
posix.cfg: Added support for encrypt()
2022-12-22 09:19:46 +01:00
orbitcowboy
7df6ba419e
gnu.cfg: Added nullPointer tests for getop_long_only()
2022-12-22 09:13:18 +01:00
orbitcowboy
70ea3c2902
posix.cfg: Added nullPointer tests for getop()
2022-12-22 09:12:57 +01:00
orbitcowboy
521f0ce720
gnu.cfg: Added nullpointer tests for getopt_long().
2022-12-21 17:06:08 +01:00
Oliver Stöneberg
b380fd2589
added command-line option `--valueflow-max-iterations` to control amount of valueflow iterations / also log debug warning when iterations are being exceeded ( #4557 )
2022-12-20 20:51:08 +01:00
Oliver Stöneberg
3c68b9b29f
use `cbegin()` and `cend()` with `const_ierator` loops ( #4658 )
2022-12-20 20:32:16 +01:00
Paul Fultz II
f8132ea022
Fix 11381: FP derefInvalidIteratorRedundantCheck when updating iterator using std::tie ( #4659 )
2022-12-20 20:29:19 +01:00
chrchr-github
7506b4ab52
Fix #11441 FP variableScope when lambda is used ( #4660 )
2022-12-20 14:50:31 +01:00
chrchr-github
ad858e92dc
Partial fix for #11444 cppcheckError: Analysis failed (function not recognized) ( #4656 )
2022-12-19 22:29:43 +01:00
Paul Fultz II
da32c5aecd
Fix 11442: new "Reference to temporary returned." FPs ( #4657 )
2022-12-19 22:28:59 +01:00
Oliver Stöneberg
2cd8bb94e4
some small `CmdLineParser` cleanups and improvements ( #4654 )
2022-12-19 22:28:36 +01:00
Paul Fultz II
9da574f4a0
Fix 11227: ValueFlow: Known value not set in condition for ternary operator ( #4653 )
...
* Evaluate args before function call
* Fix tests
* Format
* Add test for 11227
* Format
* Fix known condition
2022-12-18 22:07:43 +01:00
Oliver Stöneberg
0ed98c8f29
removed unused test files ( #4648 )
2022-12-18 19:36:37 +01:00
chrchr-github
98b3d66684
Add test for #11128 ( #4649 )
2022-12-18 16:57:25 +01:00
chrchr-github
76c28073aa
Revert fix for #10831 ( #4631 )
2022-12-18 16:55:55 +01:00
chrchr-github
617cd29a41
Get type from auto ( #4640 )
2022-12-18 16:54:58 +01:00
chrchr-github
b1abaf8809
Fix FP useStlAlgorithm (don't suggest std::accumulate when nothing is accumulated) ( #4647 )
2022-12-18 16:52:04 +01:00
gerboengels
63e30d1b8c
Fix syntaxError on lambda inside decltype ( #4650 )
...
Use case where it gave an issue:
using customComparator = decltype([] (const X& lhs, const X& rhs) { return lhs.CompareTo(rhs); });
std::map<X, int, costomComparator> m;
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-12-18 16:46:04 +01:00
chrchr-github
4c8aa56d8b
Partial fix for #11378 internalAstError regressions (iscpp11init) ( #4629 )
...
* Partial fix for #11378 internalAstError regressions (iscpp11init)
* Use %cop%
* Add test for #11229
* Format
* Format
2022-12-16 10:46:15 +01:00
Paul Fultz II
9c55b933c1
Partial fix for 11303: False negative: knownConditionTrueFalse using container .back() ( #4633 )
...
* Partial fix for 11303: False negative: knownConditionTrueFalse using container .back()
* Format
* Fix error message
2022-12-15 18:35:19 +01:00
Paul Fultz II
90898945c1
Fix 10532: False negative: dangling string_view when using ternary operator ( #4638 )
...
* Fix 10532: False negative: dangling string_view when using ternary operator
* Format
* Update
2022-12-15 18:34:43 +01:00
chrchr-github
553b579f8d
Fix #11434 FP knownConditionTrueFalse with loop over bool array ( #4646 )
...
* Fix #11434 FP knownConditionTrueFalse with loop over bool array
* Simplify
2022-12-15 14:31:02 +01:00
chrchr-github
0c1e2ceeb9
Fix #11289 FP wrongPrintfScanfArgNum - snprintf with parameter pack ( #4644 )
2022-12-15 08:52:13 +01:00
chrchr-github
b7693ccc7a
Fix #11431 FP resourceLeak with goto ( #4645 )
2022-12-14 22:47:14 +01:00
Oliver Stöneberg
29e0133cb5
extracted `FwdAnalysis` from `astutils.{cpp|h}` ( #4637 )
...
* added missing filtering offiles in Visual Studio project
* extracted `FwdAnalysis` from `astutils.{cpp|h}`
2022-12-13 22:29:23 +01:00
Paul Fultz II
e2f398f81a
Fix 11250: FN: bufferAccessOutOfBounds (comma operator: int x = (3,4) ) ( #4636 )
...
* Fix 11250: FN: bufferAccessOutOfBounds (comma operator: int x = (3,4) )
* Format
2022-12-13 07:52:58 +01:00
Oliver Stöneberg
e01c463ff8
fixed #11428 - improved handling of suffixes in `MathLib::to{Double|ULong|Long}Number()` ( #4635 )
...
* fixed #11428 - improved handling of suffices in `MathLib::to{Double|ULong|Long}Number()`
* testmathlib.cpp: adjustments for `libc++`
* mathlib.cpp: added TODO
2022-12-13 07:52:45 +01:00
Paul Fultz II
b4d455df48
Fix 11349: FP negativeIndex for clamped array index ( #4627 )
...
* Fix 11349: FP negativeIndex for clamped array index
* Format
* Use emplace_back
* Use default constructor
2022-12-13 07:50:01 +01:00
chrchr-github
5b687cb038
Fix #11423 Crash in valueFlowForwardConst() ( #4634 )
2022-12-12 22:58:48 +01:00
chrchr-github
3f5054035d
Fix #11432 FP passedByValue for overriden function ( #4632 )
2022-12-12 21:52:58 +01:00
Paul Fultz II
3f88744851
Fix 11358: FP containerOutOfBounds for container passed by pointer ( #4626 )
2022-12-09 19:43:21 +01:00
Oliver Stöneberg
40a69e5afb
optimized deserializing of `ErrorMessage` and related main process code ( #4610 )
2022-12-09 19:34:51 +01:00
Paul Fultz II
7acbb656f3
Fix 11412: False positive: uninitvar ( #4624 )
...
* Dont remove modified variables from dead code
* Add test for 11412
* Format
2022-12-09 07:15:47 +01:00
Paul Fultz II
c150317f02
Fix 11384: FP knownConditionTrueFalse when variable is modified in return statement ( #4625 )
...
* Fix 11384: FP knownConditionTrueFalse when variable is modified in return statement
* Format
2022-12-09 07:15:15 +01:00
chrchr-github
c779cefa61
Fix #11422 debug: Missing variable class for variable with varid ( #4616 )
2022-12-08 20:17:06 +01:00
Paul Fultz II
0cb742701d
Fix 11415: FP containerOutOfBounds for container initialized in virtual method ( #4622 )
2022-12-08 20:10:58 +01:00
chrchr-github
04b7c0c200
Fix #11404 FP knownConditionTrueFalse with iterator ( #4619 )
...
* Fix wrong value set in valueFlowSameExpressions()
* Fix #11404 FP knownConditionTrueFalse with iterator
2022-12-08 10:40:55 +01:00
Paul Fultz II
663a8411dd
Fix 11416: FP nullPointerRedundantCheck for check after loop with break ( #4620 )
2022-12-08 07:27:06 +01:00
Oliver Stöneberg
4103d05c7f
improved `ErrorMessage::deserialize()` error messages ( #4617 )
2022-12-07 18:00:45 +01:00
chrchr-github
8713dabe58
Get type from iterator ( #4613 )
2022-12-07 09:38:36 +01:00
Oliver Stöneberg
8bb5ac0efd
improved `MathLib::to{ULong|Long|Double}Number()` and increased test coverage / added CMake option `USE_LIBCXX` / fixed #10695 ( #4611 )
2022-12-07 09:20:09 +01:00
chrchr-github
89dba226dd
Fix #11305 FP uninitvar with unseen typedef ( #4612 )
2022-12-07 09:14:22 +01:00
chrchr-github
0e57c27dd3
Fix #11386 debug: CheckClass::checkConst found unlinked template argument list ( #4614 )
2022-12-07 09:12:46 +01:00
chrchr-github
d5d7446433
Add cfg for std::scoped_lock, handle template arguments in checkMisusedScopedObject() ( #4615 )
2022-12-07 09:10:48 +01:00
Oliver Stöneberg
7d3ce62ee9
improved errorhandling related to deserializing `ErrorMessage` ( #4604 )
2022-12-03 15:44:33 +01:00
Rikard Falkeborn
9427fa3c66
Refactor runtests to allow to specify files on command line ( #4609 )
2022-12-03 15:41:11 +01:00
chrchr-github
0854fda28a
Get type from smartpointer ( #4608 )
...
* Fix #11223 checkLibraryFunction treats "auto" as type
* Use utility function
* Get type from 'auto p = new ...'
* Fix merge
* Add test for recent fix
* Format
* Get type from smartpointer
2022-12-03 07:50:21 +01:00
chrchr-github
7d6683fb78
Fix #11417 FP knownConditionTrueFalse with container and brace init ( #4606 )
...
* Fix #11417 FP knownConditionTrueFalse with container and brace init
* Format
* Format
* Move to getInitListSize()
2022-12-02 22:07:08 +01:00
chrchr-github
e4ee7cd59c
Get type from 'auto p = new ...' ( #4607 )
...
* Fix #11223 checkLibraryFunction treats "auto" as type
* Use utility function
* Get type from 'auto p = new ...'
* Fix merge
2022-12-02 20:28:14 +01:00
chrchr-github
9efedd6be9
Fix #11223 checkLibraryFunction treats "auto" as type ( #4605 )
...
* Fix #11223 checkLibraryFunction treats "auto" as type
* Use utility function
2022-12-02 07:21:33 +01:00
chrchr-github
428f5016d4
Partial fix for #11378 (iscpp11init) ( #4595 )
...
* Partial fix for #11378 (iscpp11init)
* Improve fix
* Add fix
2022-11-27 09:26:46 +01:00
chrchr-github
665e4230f2
Fix #11406 FP returnDanglingLifetime, std::unique_ptr and implicit conversion to bool ( #4600 )
2022-11-27 09:24:19 +01:00
chrchr-github
4cb49013a7
Fix #11374 FP danglingTemporaryLifetime with std::string_view ( #4602 )
2022-11-27 09:22:55 +01:00
Rikard Falkeborn
52264b9c26
Fix #11401 nullpointer dereference with alignof ( #4601 )
...
* checknullpointer: Don't report dereference with alignof
* Refactor unevaluating operator check in checknullpointer
Unifying these ensures the different checks treat the operators the
same.
* Fix FP with _Alignof and null pointer
Just like alignof, _Alignof does not evaluate its operand.
* CheckNullPointer: Also support compiler specific alignof
This fixes #11401 which is about __alignof__. For good measure, also add
the microsoft extensions __alignof and _alignof.
2022-11-27 09:20:19 +01:00
Rikard Falkeborn
8465d901c8
Fix 11396, doublefree on munmap in if-statement ( #4594 )
2022-11-26 15:45:27 +01:00
Daniel Marjamäki
c26a8fb4ce
Fixed #11395 (Cant exclude file)
2022-11-24 13:45:57 +01:00
Stefan van Kessel
a5c16af16d
Fix lambda capture template syntax error ( #4593 )
2022-11-23 20:15:10 +01:00
chrchr-github
68acd77053
Fix #11361 FP ctuPointerArith with unknown buffer size ( #4591 )
2022-11-23 19:11:47 +01:00
Daniel Marjamäki
ad8c1e26f0
dump: output language to dumpfile
2022-11-20 12:30:09 +01:00
chrchr-github
9f50611a44
Fix #11391 FP doubleFree with goto ( #4587 )
2022-11-19 16:49:34 +01:00
chrchr-github
80aa6dc1d9
Fix #11392 FP mismatchAllocDealloc with std::unique_ptr and custom deleter ( #4585 )
2022-11-18 19:45:25 +01:00
gerboengels
3fdba645a6
Improve fix for #11383 FP selfAssignment: lambda capture ( #4584 )
2022-11-18 19:44:32 +01:00
chrchr-github
4ce76d0b58
Fix #11385 debug: SymbolDatabase::findFunction found '>' without link. ( #4583 )
2022-11-14 21:08:15 +01:00
chrchr-github
e3939d32d0
Fix crash on nullptr ( #4582 )
...
* Update tokenlist.cpp
* Update testincompletestatement.cpp
* Fix #11370 FP constStatement with lambda
* Format
* Fix crash on nullptr
* Emit syntax error
* Fix test
* Use strAt()
* Fix another crash on nullptr
* Update testconstructors.cpp
* Fix crash on nullptr
* Fix test
2022-11-13 23:04:51 +01:00
chrchr-github
701d381895
Fix #11383 FP selfAssignment: lambda capture / #11380 FP operatorEqRetRefThis ( #4581 )
...
* Fix #11383 FP selfAssignment: lambda capture / #11380
FP operatorEqRetRefThis
* Format
2022-11-13 21:20:44 +01:00
chrchr-github
e8b37235d6
Fix #11378 internalAstError regressions (iscpp11init) ( #4580 )
2022-11-12 22:25:05 +01:00
Daniel Marjamäki
8fb8e06003
SymbolDatabase: Set valuetype for this
2022-11-12 22:23:42 +01:00
chrchr-github
4e75c08f58
Respect [[maybe_unused]] in unusedPrivateFunction ( #4579 )
2022-11-10 20:58:39 +01:00
Armin Müller
7f74aad8e2
Typos found by running "codespell" ( #4578 )
2022-11-09 22:52:03 +01:00
chrchr-github
ffc0c57562
Fix crashes on nullptr ( #4575 )
2022-11-09 21:56:16 +01:00
gerboengels
bd95efc987
Fix internal error "Unexpected tokens in initializer" with anonymous namespace ( #4577 )
...
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-11-05 22:41:13 +01:00
Daniel Marjamäki
e45e5f9f15
SymbolDatabase: fix ValueType for '&array[x]'
2022-11-05 21:22:08 +01:00
Daniel Marjamäki
ecb2938e7e
SymbolDatabase: Set correct ValueType when there is array-to-pointer decay
2022-11-05 17:38:31 +01:00
gerboengels
d7a8f7f297
Fix couple issues with missing operatorEqVarError ( #4576 )
2022-11-05 10:48:34 +01:00
omarandlorraine
6488650d24
use python3 on debians too ( #3812 )
...
* use python3 on debians too
in Debian 11 which is Bullseye, /usr/bin/python is a Python2
interpreter, which means that cppcheck-htmlreport fails to run here.
So I've chenged the shebang to use python3
* change all shebangs from python to python3
Co-authored-by: Sam M W <smw@alertergroup.co.uk>
2022-11-03 22:14:30 +01:00
Rikard Falkeborn
3c21b9cc53
Fix #11038 , FP memory leak in if-statement in realloc with cast ( #4572 )
2022-11-03 10:37:43 +01:00
chrchr-github
e4c5f36af0
Fix #11373 typedef: not simplified after inline keyword ( #4574 )
2022-11-02 15:15:33 +01:00
chrchr-github
ccf2176664
Fix #11370 FP constStatement with lambda ( #4570 )
...
* Update tokenlist.cpp
* Update testincompletestatement.cpp
* Fix #11370 FP constStatement with lambda
* Format
2022-11-01 11:50:08 +01:00
chrchr-github
d717e62ec3
Fix #11371 Detect assignment to temporary ( #4571 )
...
* Fix #11371 Detect assignment to temporary
* Use AST
* Warn if type definition is not seen
2022-11-01 11:46:42 +01:00
chrchr-github
cf8051b7e2
Fix #11368 FP "Same value in both branches of ternary operator" on plus and minus zero ( #4569 )
...
Fix #11368 FP "Same value in both branches of ternary operator" on plus and minus zero
2022-10-31 15:18:25 +01:00
chrchr-github
6df8573e15
Fix #11369 Syntax error. Unexpected tokens in initializer. ( #4568 )
2022-10-29 21:24:50 +02:00
chrchr-github
b4e78e8ac5
Fix #11357 new internalAstError ( #4564 )
...
* Fix #11357 new internalAstError
* Format
* Handle scope operator
* Format
* Format
2022-10-25 21:50:37 +02:00
chrchr-github
3b5601dbea
Add tests for #9327 , #10597 ( #4566 )
...
* Add test for #9327
* Add test for #10597
2022-10-25 19:41:48 +02:00
chrchr-github
13d81cdd58
#11351 follow-up: Handle more variadic template arguments ( #4554 )
...
* Update templatesimplifier.cpp
* Add tests
2022-10-22 00:28:33 +02:00
chrchr-github
ae16aab997
Handle simple typedefs ( #4558 )
2022-10-22 00:28:05 +02:00
chrchr-github
e046232535
Fix #11362 FP returnDanglingLifetime for pointer to struct member in static array ( #4563 )
...
* Fix #11362 FP returnDanglingLifetime for pointer to struct member in static array
* Undo
2022-10-22 00:27:30 +02:00
chrchr-github
515369739c
Fix #11359 FP constStatement for function-local struct definition+initialization statement ( #4561 )
2022-10-22 00:27:19 +02:00
Razvan Ioan Alexe
1da37461e3
Typo found in Summary of CWE: 758 ( #4553 )
2022-10-20 19:11:15 +02:00
chrchr-github
7b9c99003b
Improve unreachableCodeError: handle library functions ( #4560 )
...
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Revert "Update templatesimplifier.cpp"
This reverts commit 3fd152ed4063772a5f162bd985c3d91bcc65eb55.
* Revert "Add tests"
This reverts commit e760ab51e66a0a2c3a0250caf4cf3b745db44d10.
* Improve unreachableCodeError: handle library functions
* Fix merge
2022-10-20 07:00:36 +02:00
chrchr-github
9c7b4c9540
Improve unreachableCodeError message ( #4559 )
...
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Update templatesimplifier.cpp
* Add tests
* Improve unreachableCodeError message
* Revert "Update templatesimplifier.cpp"
This reverts commit 3fd152ed4063772a5f162bd985c3d91bcc65eb55.
* Revert "Add tests"
This reverts commit e760ab51e66a0a2c3a0250caf4cf3b745db44d10.
2022-10-19 19:19:31 +02:00
chrchr-github
192c30ab1d
Fix crash in arraySize() ( #4556 )
...
* Fix #11355 FN: arrayIndexOutOfBounds
* Fix
* Fix crash in arraySize()
2022-10-19 19:19:01 +02:00
gerboengels
6a01fa9b70
#11134 Fix broken AST with (designated) initializers ( #4550 )
...
* Make control flow a bit easier, and more similar to previous code
Made similar to around line 790
* In a cpp11init, always parse only the corresponding } (#11134 )
- _always_, because in some cases this was omitted (around line 790) or too strict (around line 860)
- _only_, and not following tokens which happen to be } as well (around line 1030)
* Fix unit tests: AST was incorrect, now is fixed
auto var{ {{},{}}, {} };
Old AST:
```
{
|-var
`-{
`-,
|-,
| |-{
| `-{
`-{
```
New AST:
```
{
|-var
`-,
|-{
| `-,
| | |-{
| | `-{
`-{
```
Compare the same example, but with `X{}` instead of just `{}`:
`auto var{ a{b{},c{}}, d{} };`
```
{
|-var
`-,
|-{
| |-a
| `-,
| | |-{
| | | `-b
| | `-{
| | | `-c
`-{
`-d
```
This structure is similar to that of the new AST, not the old AST
* Fix unit tests: another AST was incorrect, now is fixed
Code: `auto var{{1,a::b{2,3}}, {4,a::b{5,6}}};`
Old AST:
```
{
|-var
`-{
`-,
|-,
| |-1 'signed int'
| `-{
| | |-::
| | | |-a
| | | `-b
| | `-,
| | | |-2 'signed int'
| | | `-3 'signed int'
`-{
`-,
|-4 'signed int'
`-{
|-::
| |-a
| `-b
`-,
|-5 'signed int'
`-6 'signed int'
```
New AST:
```
{
|-var
`-,
|-{
| `-,
| | |-1 'signed int'
| | `-{
| | | |-::
| | | | |-a
| | | | `-b
| | | `-,
| | | | |-2 'signed int'
| | | | `-3 'signed int'
`-{
`-,
|-4 'signed int'
`-{
|-::
| |-a
| `-b
`-,
|-5 'signed int'
`-6 'signed int'
```
* Fix unit tests: missing ; after class, resulting in incorrectly being marked as cpp11init
Because of the missing `;` after the class declaration, it was marked as a cpp11init block.
Which it isn't, and which now throws an exception
* Fix cpp11init to let unit tests pass again
The following unit tests failed on the newly introduced throws, because the code for these tests incorrectly marked some tokens as cpp11init:
TestVarID::varid_cpp11initialization
TestTokenizer::checkRefQualifiers
* Fix typo
* Improve check for void trailing return type
Observation: the only function body _not_ containing a semicolon, is a void function: something like
auto make_zero(ini& i) -> void {
while(--i > 0) {}
}
Non-void function? Then it must return a value, and thus contain a semicolon, which is checked for a few lines later.
* Fix cpp11init with templated trailing return type
In the following example, vector was marked as cpp11init due to the mismatch of `%any% {`
auto f() -> std::vector<int> { return {}; }
I made the assumption that whenever "%any% {" matches, endtok must be set too.
If this assumtion doesn't hold (so "%any% {" matches, but endtok == nullptr), then the for-loop would search all the way to the end of stream. Which I guess was not the intention.
* Remove comments
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-10-19 07:25:15 +02:00
chrchr-github
5a8e55c083
Fix #11355 FN: arrayIndexOutOfBounds ( #4555 )
...
* Fix #11355 FN: arrayIndexOutOfBounds
* Fix
2022-10-18 07:24:24 +02:00
chrchr-github
c6c339a3e7
Fix #11351 Assert failure in templatesimplifier.cpp ( #4552 )
2022-10-16 19:34:25 +02:00
gerboengels
221873e69f
Fix #11319 ( #4549 )
...
In this example:
```
//template<std::same_as<int> T> // <= works
template<same_as<int> T> // <= didn't work
void f()
{}
```
the changed line used to match to `< same_as <`, therefore skip creating links.
The `%op% %name% <` already feels a bit like a workaround. So adding the condition that $op$ shouldn't be a comparison operator, but part of the template, seemed reasonable to me
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-10-16 19:33:44 +02:00
Oliver Stöneberg
2ac9fbc1bf
include all (internal non-generated) headers in clang-tidy checks ( #4100 )
2022-10-16 13:51:17 +02:00
chrchr-github
3273e51fd5
Fix #10412 FN useStlAlgorithm with iterators ( #4157 )
2022-10-16 13:46:26 +02:00
chrchr-github
6c24d2b865
Fix #11321 FP uninitvar for in-class member initialization ( #4547 )
2022-10-14 19:48:27 +02:00
chrchr-github
544ec38ca9
Add test for #2490 ( #4551 )
2022-10-14 11:55:45 +02:00
Daniel Marjamäki
b8b6be48d9
Fixed #9926 (False positive assertWithSideEffects, calling method that has no side effects)
2022-10-12 07:51:50 +02:00
Daniel Marjamäki
2a81388c95
Fixed #11102 (False positive: unreadVariable when union in derived struct is used)
2022-10-11 20:47:07 +02:00
chrchr-github
c51fb3864a
Add test for #10801 ( #4544 )
2022-10-11 07:23:28 +02:00
Daniel Marjamäki
584a428025
Fixed #10831 ("Analysis failed (lambda not recognized)" with lamba default parameter in lambda signature)
2022-10-10 21:05:48 +02:00
gerboengels
ed06e29f7a
Fix defaulted and deleted functions ( #4540 )
...
* Fix 9392, but for destructors: out-of-line defaulted destructors skipped everything after
Context:
```
struct S {
~S();
};
S::~S() = default;
void g() {
int j;
++j;
}
```
Everything after `S::~S() = default;` was skipped, so the uninitialized variables in g() weren't found.
Out-of-line destructors are useful e.g. when you have a forward declared unique_ptr in the .h,
and `= default` the destructor in the .cpp, so only the cpp needs to know the header for destructing
your unique_ptr (like in the pImpl-idiom)
* Fix unit test, by correctly fixing 10789
Previous commit broke this test, but also provided the tools for a cleaner fix
* Document current behaviour
* Rewrite control flow
* Fix deleted functions, which skipped everything after
`a::b f() = delete` triggered the final else in SymbolDatabase::addNewFunction,
which sets tok to nullptr, effectively skipping to the end of the stream.
* Remove troublesome nullptr, which skips every analysis afterwards
It was introduced in 0746c241
to fix a memory leak.
But setting tok to nullptr, effectively skipping to the end, seems not needed.
Previous commits fixes prevented some cases where you could enter the `else`.
This commit is more of a fall back.
* fixup! Fix deleted functions, which skipped everything after
`a::b f() = delete` triggered the final else in SymbolDatabase::addNewFunction,
which sets tok to nullptr, effectively skipping to the end of the stream.
* fixup! Fix deleted functions, which skipped everything after
`a::b f() = delete` triggered the final else in SymbolDatabase::addNewFunction,
which sets tok to nullptr, effectively skipping to the end of the stream.
* Make it heard when encountering unexpected syntax/tokens
Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
2022-10-10 20:17:33 +02:00
Daniel Marjamäki
65cd6ea7b4
Clarify knownConditionTrueFalse warnings
2022-10-10 13:45:30 +02:00
Paul Fultz II
bd22ea565f
Use return instead of condition for alwaysTrueFalse check ( #4446 )
2022-10-09 21:03:48 +02:00
Oliver Stöneberg
fa7e08a29f
optimized `CheckOther::checkDuplicateBranch()` a bit ( #4542 )
2022-10-09 20:48:54 +02:00
Oliver Stöneberg
d1bfae989e
fixed handling of incomplete char/string literals in `isPrefixStringCharLiteral()` - also optimized it a bit ( #4541 )
...
* fixed handling of incomplete char/string literals in `isPrefixStringCharLiteral()` - also optimized it a bit / added tests for `isStringLiteral()` and `isCharLiteral()`
* utils.h: early out in `isStringCharLiteral()` to avoid the loop
2022-10-09 11:19:19 +02:00