Commit Graph

11803 Commits

Author SHA1 Message Date
orbitcowboy e293b66ac6 gnu.cfg: Added support for getservent_r(). 2022-05-03 11:54:28 +02:00
Paul Fultz II 3edb10a006
Fix 11024: FP returnDanglingLifetime with c_str() passed to constructor (#4072) 2022-05-03 11:42:32 +02:00
orbitcowboy 9f7c34272d Added a regression test for ticket #10000 - No UnreadVariable for simple class 2022-05-03 06:58:03 +02:00
chrchr-github 8ce0faf723
Fix #10427 Regression: selfInitialization (#4070) 2022-05-02 16:49:13 +02:00
orbitcowboy 5a7c998a79 posix.cfg: Improved configuration of getpwuid_r(). 2022-05-02 16:48:22 +02:00
orbitcowboy 8cc16f1adb posix.cfg: Improved configuration of getpwnam_r(). 2022-05-02 16:41:33 +02:00
chrchr-github 67f4fe575f
Fix #10978 syntaxError with attribute for function pointer (#4069) 2022-05-02 15:05:48 +02:00
orbitcowboy 6c54e7363d posix.cfg: Added support for fgetpwent_r(). 2022-05-02 12:56:47 +02:00
orbitcowboy 86cc410dc2 posix.cfg: Added support for getpwent_r(). 2022-05-02 12:51:58 +02:00
orbitcowboy ba57f33f81 posix.cfg: Added support for getgrnam_r() and getgrgid_r(). 2022-05-02 12:28:54 +02:00
orbitcowboy 0ec2d5f40d std.cfg: Improved configuration of qsort(). 2022-05-02 11:58:31 +02:00
orbitcowboy 6a657865eb posix.cfg: Improved test cases for ffs(). 2022-05-01 18:15:32 +02:00
orbitcowboy 6ad5a94acf gnu.cfg: Improved configuration for memrchr(). 2022-05-01 18:10:19 +02:00
orbitcowboy 6f6ddb99b2 std.cfg: Improved tests for memchr(). 2022-05-01 18:09:54 +02:00
chrchr-github e9a0d7979e
Fix #11014 FN redundantPointerOp / remove simplifyMulAndParens() (#4062) 2022-05-01 15:46:07 +02:00
orbitcowboy e0ccfea027 gnu.cfg: Improved configuration of ffsl() and ffsll() 2022-05-01 15:29:35 +02:00
orbitcowboy 178efb7058 posix.cfg: Improved configuration for ffs(). 2022-05-01 15:24:57 +02:00
orbitcowboy cbcbff7d12 posix.cfg: Improved tests for readlink(). 2022-05-01 14:17:49 +02:00
orbitcowboy 0e4a17e2ab posix.cfg: Improved configuration of readlinkat(). 2022-05-01 14:08:08 +02:00
orbitcowboy 5db6fc1f54 std.cfg: Improved configuration of localtime_s() 2022-05-01 12:47:13 +02:00
orbitcowboy 01a24d2ce0 posix.cfg: Improved configuration of recv(). 2022-05-01 12:27:14 +02:00
orbitcowboy d6af9da83d posix.cfg: Improved configuration of recvfrom(). 2022-05-01 12:24:15 +02:00
orbitcowboy 85f44d36dd gnu.cfg: Added support for semtimedop(). 2022-05-01 11:41:51 +02:00
orbitcowboy 63e58b9051 posix.cfg: Added support for semop(). 2022-05-01 11:41:31 +02:00
Paul Fultz II 3e686103ae
Fix 10984: False positive: invalidContainer when explictly capturing vector by reference (#4064) 2022-04-30 09:36:28 +02:00
Paul Fultz II 4e7125554f
Fix 8358: FP: Condition '(number*0)!=0' is always false (#4065) 2022-04-30 09:35:51 +02:00
Paul Fultz II 9fa5c4e201
Fix 11011: FP returnDanglingLifetime with non-const reference argument [inconclusive] (#4066)
* Fix 11011: FP returnDanglingLifetime with non-const reference argument [inconclusive]

* Format
2022-04-30 08:23:58 +02:00
chrchr-github 6a914dc435
Add tests for # 10773, #108787, #8991 (#4063)
* Add test for #10773

* Add test for #10878

* Add test for #8991
2022-04-30 08:20:00 +02:00
chrchr-github e7afb3045b
Fix FP redundantPointerOp with macro (#4061)
* Fix #10991 FN: Redundant pointer operation

* Fix FP redundantPointerOp

* Check for LValue

* Fix FP redundantPointerOp with macro

* Format
2022-04-29 13:23:50 +02:00
chrchr-github 0467ab1339
Fix #7923 FN memleak with cfg (#4060) 2022-04-28 19:50:16 +02:00
chrchr-github 8dbe6994a2
Fix FP redundantPointerOp (#4058)
* Fix #10991 FN: Redundant pointer operation

* Fix FP redundantPointerOp

* Check for LValue
2022-04-28 15:25:31 +02:00
chrchr-github 3d3885d151
Add test for #9838 / Remove noisy assert (#4059)
* Add test for #9838

* Remove noisy assert
2022-04-28 15:24:54 +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 034140e7e1
Fix #10991 FN: Redundant pointer operation (#4054) 2022-04-27 19:52:56 +02:00
chrchr-github bcbc29affb
Fix #10526 FP: negativeIndex if function call is made after index check (#4052)
* Fix #10526 FP: negativeIndex if function call is made after index check

* Improve container check

* Format
2022-04-27 14:08:44 +02:00
chrchr-github 6df0f9b3e3
Add tests for #7377, #8692, #9180 (#4053) 2022-04-27 12:43:21 +02:00
orbitcowboy 6796f9daa2 std.cfg: Moved strdup() from posix.cfg to std.cfg since its now part of C23. 2022-04-27 12:41:40 +02:00
orbitcowboy b2c3a9e9a3 posix.cfg: Improved configuration for send(). 2022-04-27 10:41:57 +02:00
orbitcowboy 9726dc8174 posix.cfg: Improved support for sendto(). 2022-04-27 10:35:43 +02:00
orbitcowboy fa1182c0f1 bsd.cfg: Added support for setbuffer() and setlinebuf(). 2022-04-27 10:22:38 +02:00
orbitcowboy 53ebb55e1f std.cfg: Improved configuration of setvbuf(). 2022-04-27 10:09:23 +02:00
orbitcowboy 561e21e2aa std.cfg: Improved tests for setbuf(). 2022-04-27 09:21:09 +02:00
orbitcowboy fa351e010b posix.cfg: Improved tests for socketpair() 2022-04-26 18:13:24 +02:00
orbitcowboy 17189e1d6e std.cfg: Improved configuration of strftime(). 2022-04-26 18:03:39 +02:00
Paul Fultz II 474c7fe5cc
Fix 10953: False positive: Possible null pointer dereference when calling derived function (#4044) 2022-04-26 17:57:06 +02:00
orbitcowboy 7d723a7a60 Merge branch 'main' of https://github.com/danmar/cppcheck into main 2022-04-26 17:51:24 +02:00
orbitcowboy 7e3ac96ebc std.cfg: Improved tests of vswprintf(). 2022-04-26 17:50:59 +02:00
chrchr-github 0dc3cb6eba
Fix #11007 FP nullPointerRedundantCheck with static function pointer (#4051) 2022-04-26 17:25:56 +02:00
orbitcowboy 0d35a60954 posix.cfg: Added support for drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48 and lcong48 - generate uniformly distributed pseudo-random numbers. 2022-04-26 17:24:39 +02:00
orbitcowboy bfbc7e1549 posix.cfg: Added support for getlogin_r(). 2022-04-26 10:04:15 +02:00
orbitcowboy bd1104d786 posix.cfg: Added support for pread(). 2022-04-26 09:37:08 +02:00
orbitcowboy 942375741b posix.cfg: Added support for pwrite(). 2022-04-26 09:26:39 +02:00
orbitcowboy bb98ccf7d4 Ticket #9313 - Added a regression test 2022-04-26 07:45:08 +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 961ecfbe33
Fix #11003 cppcheckError with nested template arguments (#4049) 2022-04-25 22:23:06 +02:00
chrchr-github 1bc0317719
Fix #11002 FP uninitStructMember with extra parentheses (#4047) 2022-04-25 22:22:35 +02:00
chrchr-github b4df064875
Fix #11004 FP AssignmentIntegerToAddress with volatile (#4046) 2022-04-25 22:00:37 +02:00
chrchr-github 81f9b9b2b7
Fix FP with ptr to ptr const (#4050) 2022-04-25 21:45:11 +02:00
orbitcowboy d7063806d1 posix.cfg: Improved configuration for swab(). 2022-04-25 18:34:31 +02:00
orbitcowboy d1b6954dd8 std.cfg: Improved configuration for wcsrtombs(). 2022-04-25 18:25:52 +02:00
orbitcowboy 31d0b0b73b posix.cfg: Improved configuration for wcsnrtombs(). 2022-04-25 15:54:44 +02:00
orbitcowboy 89ae22c0e1 posix.cfg: Improved configuration for wcsnrtombs(). 2022-04-25 15:49:37 +02:00
orbitcowboy dd2e218bb4 posix.cfg: Added some tests for ttyname_r(). 2022-04-25 12:46:27 +02:00
orbitcowboy d42bab47ae posix.cfg: Added support for wcsnrtombs(). 2022-04-25 12:26:02 +02:00
Paul Fultz II 6b9ac6f7a8
Warn when incrementing uninitialized value (#4042)
* Warn when incrementing uninitialized value

* Format
2022-04-24 09:56:58 +02:00
Paul Fultz II 5d5562266d
ValueFlow: Assume constant is nonzero when its negated (#4041)
* ValueFlow: Assume constant is nonzero when its negated

* Format

* Format
2022-04-23 06:19:07 +02:00
Paul Fultz II 4eed29502c
ValueFlow: Set values to parameters to longjmp and setjmp (#4040)
* ValueFlow: Set values to parameters to longjmp and setjmp

* Format
2022-04-23 06:18:55 +02:00
Paul Fultz II 4fa2e3ac87
Use default template in the cfg tests (#4039) 2022-04-23 06:18:44 +02:00
orbitcowboy a75ecbca0e std.cfg: Improved tests for wcsftime(). 2022-04-22 08:29:20 +02:00
orbitcowboy 5d26d62698 posix.cfg: Added more test for wcpncpy(). 2022-04-22 08:23:17 +02:00
orbitcowboy 097438f308 posix.cfg: utimes() is a wrapper for utime(), which is obsolescent. Set utimes() as obsolescent as well. 2022-04-22 08:18:21 +02:00
orbitcowboy 478aa6754b posix.cfg: Added support for wcsncasecmp(). 2022-04-22 08:07:20 +02:00
orbitcowboy 0560a946a8 std.cfg: Added more tests 2022-04-22 08:00:45 +02:00
orbitcowboy 051512dd48 bsd.cfg: Added support for pwritev(), preadv(), writev() and writev(). 2022-04-22 07:41:03 +02:00
orbitcowboy b315e8a115 std.cfg: Added more tests for wmemmove() and wmemset(). 2022-04-22 07:25:27 +02:00
Oliver Stöneberg fdca61add9
aligned build options of Visual Studio project configurations and added them to CMake (#4020) 2022-04-21 21:28:29 +02:00
orbitcowboy 1bf7b3b7dd std.cfg: Added more tests for memcmp(), memcpy() and memmove(). 2022-04-21 21:01:38 +02:00
Paul Fultz II 3feecc51d6
Fix 10988: FP: Regression, uninitvar (#4037) 2022-04-21 19:29:38 +02:00
orbitcowboy ce35a6c975 std.cfg: Added more tests for strcat() and strcpy(). 2022-04-21 16:59:25 +02:00
orbitcowboy e683f3ce28 std.cfg: Added more test for strncpy(). 2022-04-21 16:47:19 +02:00
orbitcowboy 7f48127c0b std.cfg: Added more test for strncat(). 2022-04-21 16:43:52 +02:00
orbitcowboy a6f87e6b8a std.cfg: Added more test for strcmp(). 2022-04-21 16:13:48 +02:00
orbitcowboy e06169cf8d std.cfg: Added more test for strncmp() and wmemcmp(). 2022-04-21 16:09:36 +02:00
Oliver Stöneberg f53ad2391a
CMakeLists.txt: removed left-over Z3 code (#4035) 2022-04-21 12:54:16 +02:00
orbitcowboy 7c766a9696 gnu.cfg: Ensure a nullPointer warning is shown for invalid input to mempcpy() and wmempcpy(). 2022-04-21 09:19:32 +02:00
orbitcowboy c7ab35613e posix.cfg: Cleanup test case. 2022-04-21 09:10:13 +02:00
orbitcowboy 49057543a1 std.cfg: Ensure a warning is issued for null pointer input for strlen(). 2022-04-21 09:09:46 +02:00
orbitcowboy 3bd65d42cd posix.cfg: Fixed bufferAccessOutOfBounds falsen negative for strnlen() and added a TODO for wcsnlen() 2022-04-21 09:02:02 +02:00
orbitcowboy dad1a68e51 posix.cfg: Fixed FP bufferOverlap-warning of bcopy() and added more tests. 2022-04-21 08:31:22 +02:00
orbitcowboy 1fb1b22bae posix.cfg: Improved configuration for bzero() and added tests. 2022-04-20 20:57:58 +02:00
orbitcowboy fe1c1ddcc1 test/posix.c: Formatted code [ci skip]. 2022-04-20 18:21:24 +02:00
orbitcowboy d075cba535 posix.cfg: Ensure null pointer input is correctly handled for bcmp(). 2022-04-20 18:18:38 +02:00
orbitcowboy 7cbdea9b81 posix.cfg: Ensure null pointer input is correctly handled for strcasecmp(). 2022-04-20 18:15:54 +02:00
orbitcowboy a8a821a9c7 posix.cfg: Ensure null pointer input is correctly handled for strncasecmp(). 2022-04-20 18:13:49 +02:00
orbitcowboy f3fc5892e1 posix.cfg: Ensure null pointer input is correctly handled for strsep(). 2022-04-20 17:58:50 +02:00
orbitcowboy c17d3a1022 posix.cfg: Ensure null pointer input is correctly handled for stpcpy(). 2022-04-20 17:52:38 +02:00
orbitcowboy 1055b118a4 posix.cfg: Ensure null pointer input is correctly handled for gethostname(). 2022-04-20 17:40:03 +02:00
orbitcowboy d0ff2a022a posix.cfg: Added support for wcwidth(). 2022-04-20 17:32:26 +02:00
Oliver Stöneberg 4ddd7e562d
runtests.sh: refactoring and cleanups (#4029)
* runtests.sh: avoid redundant `pkg-config` checks and simplified the check

* runtests.sh: write a message when something is completely missing

* runtests.sh: derive paths from script location

* runtests.sh: improved readability by using individual functions for each file

* runtests.sh: added helper function `get_pkg_config_cflags()` to clean up cflag lookup from `pkg-config`

* runtests.sh: simplified `xmlstarlet` calls
2022-04-20 17:27:12 +02:00
orbitcowboy 8b90b2d0fd posix.cfg: Added more tests. 2022-04-20 15:27:14 +02:00
orbitcowboy 1067cb6e5d posix.cfg: Added support for wcswidth(). 2022-04-20 15:23:46 +02:00
orbitcowboy 5be16c3113 std.cfg: Ensure null pointer input is correctly handled for fgets() and fgetws(). 2022-04-20 08:50:45 +02:00
orbitcowboy df84bed889 posix.cfg: Added support for more interfaces. 2022-04-20 07:45:38 +02:00
orbitcowboy 5a3d84d84d posix.cfg: Added support for aio_read() 2022-04-20 07:27:28 +02:00
orbitcowboy e0942c1bb4 std.cfg: Ensure warnings are issued for passing null pointer to bsearch(). 2022-04-19 21:21:35 +02:00
orbitcowboy b7bffaa1a7 Formatted code 2022-04-19 21:13:22 +02:00
orbitcowboy f3907e4c9e posix.cfg: Added support for aio_suspend(). 2022-04-19 21:13:09 +02:00
orbitcowboy 24303bfdd3 wxwidgets.cfg: Fixed FPs due to wrong direction attribute set for wxString::ToDouble and wxString::ToCDouble(). 2022-04-19 06:53:34 +02:00
orbitcowboy 6746da5e53 wxwidgets.cfg: Fixed some FPs for wxTextCtrl::GetSelection(), where the argument direction was wrongly set as input. 2022-04-18 15:41:50 +02:00
Oliver Stöneberg 8f728cb4b6
added (partial) support for specifying C++23 and support more "-std" options (#3212) 2022-04-15 16:17:36 +02:00
Paul Fultz II 28cf14f110
Fix 10975: false negative: dangling reference in class (#4024)
* Fix 10975: false negative: dangling reference in class

* Format
2022-04-14 18:59:12 +02:00
chrchr-github 6450d5701c
Fix #10979 FP arrayIndexOutOfBoundsCond with sizeof (#4021)
* Fix #10466 FP constVariable with pointer typedef

* Fix flag check

* Use isStatic()

* Fix #10979 FP arrayIndexOutOfBoundsCond with sizeof and extra parentheses
2022-04-14 18:13:29 +02:00
Paul Fultz II 6deb8068fa
Fix 10981: ValueFlow: multiplication with 0 should have known value 0 (#4023) 2022-04-14 18:13:04 +02:00
Paul Fultz II 09597bc7e8
Fix 10956: ValueFlow: Incorrect value when assigned to two variables (#4019)
* Fix 10956: ValueFlow: Incorrect value when assigned to two variables

* Format
2022-04-14 07:35:07 +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 8203c74c40
Fix #9648 FP sizeofDivisionMemfunc (#4017)
* Fix #9648 FP sizeofDivisionMemfunc when result is multiplied again with sizeof later

* Format
2022-04-13 18:21:56 +02:00
chrchr-github 938517b80a
Fix #10265 FP unused private method (#4015) 2022-04-13 14:49:28 +02:00
chrchr-github da1e2b22be
Add some tests (#4014)
* Test for #10454

* Test for #10493

* Test for #10069

* Test for #10228

* Fix test case
2022-04-13 12:25:53 +02:00
chrchr-github f323e8a6c6
Fix #10311 FP functionConst (#4012)
* Fix #10311 FP functionConst

* Format

* Format
2022-04-13 12:25:36 +02:00
chrchr-github 55cb396d18
Fix #10494 Same template name confuses check (#4011) 2022-04-13 12:25:21 +02:00
chrchr-github ea65fe2b63
Fix another FP divideSizeof (#4009)
* Fix FP divideSizeof

* Format

* Undo

* simpleMatch

* Fix another FP divideSizeof
2022-04-13 12:24:35 +02:00
Oliver Stöneberg 32978933b5
removed leftovers of generated cfg tests (#4008) 2022-04-13 12:24:17 +02:00
Oliver Stöneberg 45158ec064
cleaned up includes based on include-what-you-use (#4007)
* cleaned up includes based on include-what-you-use

* updated translations
2022-04-13 12:24:00 +02:00
chrchr-github 5ac4afa5b8
Fix cppcheckError with spaceship operator (#10251) (#4001)
* Fix cppcheckError with starship operator (#10251)

* Fix test case

* Return result
2022-04-13 12:23:38 +02:00
Paul Fultz II 6c82fb05a4
Fix 10954: False positive: returnDanglingLifetime when using c_str() (#4006) 2022-04-12 08:09:13 +02:00
Paul Fultz II 61b87bcc60
Fix 10955: False positive: containerOutOfBounds when using a const reference member (#4005) 2022-04-12 08:07:55 +02:00
chrchr-github 00badff622
Fix #10315 FP functionConst (#3997)
* Fix #10315 FP functionConst

* Update releasenotes.txt
2022-04-11 22:55:16 +02:00
chrchr-github 28a024ac4a
Fix #9954 incorrectLogicOperator/knownConditionTrueFalse for constexpr (#4002) 2022-04-11 20:42:54 +02:00
chrchr-github bf6bcafc56
Fix FP divideSizeof (#4003) 2022-04-11 20:41:59 +02:00
Oliver Stöneberg a98346bbe0
generate a program database in all Visual Studio configurations (#3996) 2022-04-11 11:28:07 +02:00
Daniel Marjamäki 8f386e15fd Remove bug hunting. This feature will be provided in Cppcheck premium. 2022-04-11 07:31:33 +02:00
Paul Fultz II 99757c6d06
ValueFlow: Set values to parameters to escape functions (#3994)
* ValueFlow: Set values to parameters to escape functions

* Format
2022-04-11 07:23:58 +02:00
Paul Fultz II d97942d3c6
Fix 6577: Detect pointer to uninitialised memory with clock_settime() (#3993)
* Fix 6577: Detect pointer to uninitialised memory with clock_settime()

* Format
2022-04-11 07:23:44 +02:00
Paul Fultz II 45b4580554
Fix 10957: Crash on valid code (#3991) 2022-04-10 22:47:58 +02:00
chrchr-github bd9f5231b8
Fix #10179 FP divideSizeof with dereferenced pointer-to-pointer (#3786) 2022-04-10 22:47:27 +02:00
orbitcowboy aa7a1f25c1 Added regression test from Ticket #3929:comment18 2022-04-10 08:10:11 +02:00
chrchr-github c8936d04f6
Fix #3886 New Check : Return value of "new" ignored (#3884) 2022-04-09 19:06:32 +02:00
Oliver Stöneberg 25ef9eeb26
use std::string::empty() (#3910) 2022-04-09 19:02:37 +02:00
chrchr-github 0636018df3
Fix #10368 FP: unassignedVariable with structured binding (#3990) 2022-04-09 14:50:30 +02:00
chrchr-github 2bccde0e3b
Fix #9789 FP Logical condition considered always false (#3985) 2022-04-09 14:09:10 +02:00
chrchr-github 38bc0ad4c3
Fix regression: wrong member variable (#3987) 2022-04-08 08:23:10 +02:00
Paul Fultz II d2a0b0f78e
Fix 10951: FP knownEmptyContainer with east-const (#3988)
* Fix 10951: FP knownEmptyContainer with east-const

* Format

* Use simpleMatch
2022-04-08 08:22:39 +02:00
chrchr-github ceb86afc22
Fix #10952 FP constStatement with cast in return (#3986) 2022-04-07 14:11:14 +02:00
Paul Fultz II 4c1aeb0cb1
Remove old pointer alias check (#3983) 2022-04-07 11:36:15 +02:00
chrchr-github 52b4aeb279
Fix #10792 FP knownConditionTrueFalse with double to int cast (#3964) 2022-04-07 10:42:57 +02:00
Paul Fultz II dad10f2ab7
Fix 7684: ValueFlow: function call 'X::GetSize()' (#3984)
* Improve getting function to calculate the return

* Add test

* Format

* Move to cpp to avoid FP

* Format
2022-04-07 06:49:25 +02:00
Paul Fultz II 8986cf018f
Fix todo test that was using wrong function (#3982)
* Fix todo test that was using wrong function

* Format
2022-04-07 06:48:51 +02:00
Paul Fultz II 74667d1e2a
Fix 10418: false negative: knownConditionTrueFalse (#3981)
* Improve handling inverted condition

* Fix tests

* Rename variables for clarity

* Add initial test

* Add another test

* Format

* Fix FP
2022-04-07 06:48:13 +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
Paul Fultz II bb640c4879
Fix 10950: Crash on function declaration (#3979)
* Fix 10950: Crash on function declaration

* Format
2022-04-06 19:00:05 +02:00
chrchr-github b73aeeda0e
Fix FP constStatement with comma operator (#3978)
* Fix FP constStatement with comma operator

* Format
2022-04-06 16:58:17 +02:00
orbitcowboy 64a7ba3c4c Added regression test for #8332. 2022-04-06 08:12:41 +02:00
Paul Fultz II 4fde7f8b18
Fix 10449: Regression: knownConditionTrueFalse (strlen/wcslen) (#3977)
* Refactor library function usage

* Evaluate library function in program memory

* Fix and add tests

* Format
2022-04-06 06:35:38 +02:00
Paul Fultz II 1d92665ad2
Fix 10867: false negative: containerOutOfBounds with std::array (regression) (#3976)
* Fix 10867: false negative: containerOutOfBounds with std::array (regression)

* Format
2022-04-06 06:25:28 +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 f5313dc519
Fix crash with defaulted destructor (#3975) 2022-04-05 23:18:08 +02:00
chrchr-github c4dcfef385
Fix #10260 debug: Executable scope 'x' with unknown function. (#3974)
* Fix #10174 debug: Executable scope 'x' with unknown function

* Format

* Add test for #10198

* Fix #10260 debug: Executable scope 'x' with unknown function.
2022-04-05 15:52:16 +02:00
chrchr-github 3ba6914563
Add test for #10198 (#3973)
* Fix #10174 debug: Executable scope 'x' with unknown function

* Format

* Add test for #10198
2022-04-05 13:04:20 +02:00
chrchr-github cfbbeb4b1b
Partial fix for #10867 FN containerOutOfBounds with std::array (#3971)
* Partial fix for #10867 FN containerOutOfBounds with std::array

* Format

* Format

* Optimize
2022-04-05 07:34:20 +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
chrchr-github aae810dd2c
Fix #10107 FP: duplicateValueTenary (#3969) 2022-04-04 06:33:54 +02:00
chrchr-github 955d6d8fc6
Fix #10793 internalAstError with brace-init in ternary (#3966)
* Fix #10793 internalAstError with brace-init in ternary

* Undo
2022-04-03 20:05:03 +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
Paul Fultz II 0547cbcd26
Fix 10647: FN knownConditionTrueFalse for impossible Boolean value (#3968)
* Add impossible values for bool

* Fix valueflow tests

* Fix assertion failure

* Add test

* Format
2022-04-03 20:04:05 +02:00
chrchr-github 7a7b3e40eb
Fix regression FN constVariable with static arrays (#3965)
* Fix regression FN constVariable with static arrays

* Fix test case
2022-04-02 20:39:45 +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
chrchr-github 4bf8718dcb
Fix #10849 FP constStatement with pointers in lambda (#3961) 2022-04-01 19:50:40 +02:00
Paul Fultz II 5bea50cd36
Fix 10908: FP: uninitvar after for-loop (#3942) 2022-03-31 21:24:20 +02:00
chrchr-github 183969cd4b
Fix #10936 FP constStatement with extern declaration (#3960) 2022-03-31 21:08:04 +02:00
chrchr-github c85e7e7d2f
Fix FP constStatement with more complex expression (#3959) 2022-03-30 22:00:57 +02:00
Jens Yllman 34a11c1673
Fix unmatched suppression (#5704) (#3886) 2022-03-30 19:24:53 +02:00
chrchr-github 343a23135d
Fix #10932 FP constStatement with reference and direct initialization (#3952) 2022-03-30 19:22:01 +02:00
chrchr-github 47ba053054
Fix #10744 FP constVariable with static pointer (#3957) 2022-03-30 19:21:09 +02:00
chrchr-github 948bb8df94
Add test for #10089, #10280 (#3958) 2022-03-30 15:49:45 +02:00
chrchr-github 86ff360946
Fix #10917 FP constStatement with immediately evaluated lambda (#3956) 2022-03-29 06:10:57 +02:00
chrchr-github 81bcbfa7fe
Fix #10920 FP missingOverride with friend (#3955) 2022-03-28 22:44:04 +02:00
chrchr-github 49147f95fe
Fix #10918 FP constStatement with dynamic_cast (#3954) 2022-03-28 22:15:40 +02:00
chrchr-github 8d49fc252c
Fix FP constStatement ',' with Eigen, OpenCV etc. (#3950) 2022-03-28 22:06:44 +02:00
chrchr-github 11cbb2eb00
Fix AST cyclic dependency [cppcheckError] 3 (#3953) 2022-03-28 22:05:41 +02:00
chrchr-github d57d536f01
Fix #10882 FP constStatement with negation and cast (#3951) 2022-03-28 21:52:08 +02:00
chrchr-github 7b97230dd2
Fix #10505 FP unreadVariable for lock_guard variable (#3938) 2022-03-28 21:45:49 +02:00
Paul Fultz II 54fbfd7c0f
Fix 10895: FP danglingTempReference with emplace() (#3948)
* Fix 10895: FP danglingTempReference with emplace()

* Format
2022-03-27 10:02:30 +02:00
Paul Fultz II 21b8c36eb1
Fix 10916: FP: uninitvar (#3949) 2022-03-27 10:01:58 +02:00
chrchr-github 63d96e49fc
Fix #10928, #10930 FP constStatement (#3946)
* Fix #10928, #10930 FP constStatement

* Fix test cases (first one did not compile)
2022-03-27 07:59:29 +02:00
chrchr-github 401f0de18b
Fix #10929 FP constStatement with new (#3947) 2022-03-27 07:59:19 +02:00
chrchr-github 1dd19dcaef
Fix AST cyclic dependency [cppcheckError] (#3945) 2022-03-26 22:39:14 +01:00
chrchr-github 5ed521622f
Fix #10923 FP constStatement with ptr to ptr to ptr (#3944)
* Fix #10923 FP constStatement with ptr to ptr to ptr

* simpleMatch
2022-03-26 06:12:26 +01:00
amai2012 a143fa37dd
use-retval for localtime() (#3935)
* use-retval for localtime()

* Adjust test to avoid new warning
2022-03-25 17:32:54 +01:00
chrchr-github fe7d0eeffc
Fix #10919 FP: constStatement with template type (#3941) 2022-03-25 17:03:54 +01:00
orbitcowboy 8d7fe702e0 Ticket #9104 - Adde a regression test 2022-03-25 17:01:57 +01:00
chrchr-github 12cb19bdf2
Fix AST cyclic dependency [cppcheckError] (#3940) 2022-03-25 14:03:32 +01:00
chrchr-github e54ad24d2c
Fix #10870 FN constStatement with arrays (#3904) 2022-03-25 11:32:16 +01:00
chrchr-github 796ad6c008
Fix #10913 FP variableScope - vector referenced via iterator (#3936) 2022-03-25 09:21:17 +01:00
Daniel Marjamäki 212ac6c214 compile_commands.json: ensure that order of include paths are kept 2022-03-24 22:50:04 +01:00
chrchr-github 3630e9c49d
Fix #10874 FP constStatement with extra parentheses in declaration (#3931) 2022-03-24 22:07:21 +01:00
chrchr-github 479af21405
Fix #10698 FP uninitvar with new and braced initializer (#3934) 2022-03-24 20:08:51 +01: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
Daniel Marjamäki 3bcbba598d Fixed #10887 (compile database: include path with space is not handled) 2022-03-23 21:13:51 +01:00
chrchr-github 0d2af9a5b7
Fix #10880 FP constStatement with init list in function call (#3929) 2022-03-23 18:10:33 +01:00
orbitcowboy d376201cb4 gnu.cfg: Added support for getpw(). Ref.: https://man7.org/linux/man-pages/man3/getpw.3.html 2022-03-23 17:14:26 +01:00
chrchr-github e0830693c3
Fix FP uninitMemberVarPrivate with anonymous union (#3927) 2022-03-23 07:35:41 +01:00
chrchr-github 39567ea8c8
Fix #8541 FP variableScope (std::for_each with lambda) (#3924) 2022-03-22 21:50:46 +01:00
chrchr-github 40c2687ac4
Fix #10875 FP constStatement with delete (#3926) 2022-03-22 18:39:02 +01:00
chrchr-github 3faff5e9fc
Fix #10248 FP knownConditionTrueFalse static variable with direct initialization (#3922) 2022-03-22 07:24:40 +01:00
chrchr-github 18a7a805df
Fix #10502 FP doubleFree (#3921) 2022-03-21 22:17:50 +01:00
Daniel Marjamäki 1fe7cd348a exename: Set proper exename when cppcheck is executed from PATH and argv[0] does not contain path information 2022-03-21 18:35:53 +01:00
chrchr-github 0e147502cc
Fix #10888 FN variableScope with enum and struct (#3920)
* Fix #10888 FN variableScope with enum and struct

* Scope reduction

* Scope reduction
2022-03-21 16:05:38 +01:00
chrchr-github 2baf8f6cd4
Fix FP virtualCallInConstructor with function pointer (#3913) 2022-03-19 20:00:06 +01:00
chrchr-github 297b0b5c60
Fix #10886 FP: Label 'enum' is not used. [unusedLabel] (#3912) 2022-03-17 17:38:23 +01:00
chrchr-github 97ce569859
Fix #10873 FP constStatement with extra parentheses in function call (#3911)
* Fix #10873 FP constStatement with extra parentheses in function call

* Format
2022-03-17 12:47:27 +01:00
chrchr-github e073860e62
Fix #10841 FN uninitMemberVar when member is being used in constructor (regression) (#3909) 2022-03-16 20:35:55 +01:00
Paul Fultz II 40ff9edad6
Fix 10843: FP: danglingTemporaryLifetime (#3908)
* Fix 10843: FP: danglingTemporaryLifetime

* Format
2022-03-16 17:11:49 +01:00
chrchr-github fb1170b10b
Fix #10872 FP constStatement with variable called std (#3906) 2022-03-16 15:29:34 +01:00
chrchr-github b8ba0ae00e
Fix #10877 FP constStatement with ternary and comma operator (#3905) 2022-03-16 15:28:59 +01:00
Georgi D. Sotirov 33315b0ae5
Replace tinyxml2_LIBRARY with tinyxml2_LIBRARIES (#3897) 2022-03-15 21:17:03 +01:00
chrchr-github 1aff160411
Fix #9303 FP uninitvar after lambda expression (#3903)
* Fix #9303 FP uninitvar after lambda expression

* Format
2022-03-15 14:32:33 +01:00
chrchr-github f90a93591f
Add tests for #9871, #10144 (#3902)
* Add test for #9871

* Add test for #10144

* Format
2022-03-15 12:54:19 +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 d3d40fd599
Fix #10868/#10869 FN: constStatement, handle unused character constants (#3898)
* Fix #10868 FN: constStatement, handle unused character constants

* simpleMatch

* Fix #10869 FN: constStatement

* Format
2022-03-14 14:14:32 +01:00
chrchr-github 2eed660b32
Fix #8496 Clarify warnings for uninitMemberVar (#3760) 2022-03-13 17:33:31 +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
chrchr-github c3506b5186
Fix #10691 regressions with static variables and multiple assignments (#3895)
* Fix regressions with static variables and multiple assignments

* Fix test

* Fix test cases
2022-03-13 06:26:21 +01:00
chrchr-github 3df170c191
Fix #10865 FN: constStatementError, streamline error messages (#3892) 2022-03-12 14:52:18 +01:00
chrchr-github d1f740a289
Partial fix for #9384 varid 0 with lambda (II) (#3889)
* Partial fix for #9384 varid 0 with lamba

* Format

* Undo

* Undo

* Partial fix for #9384 varid 0 with lambda (II)
2022-03-12 06:17:37 +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
Paul Fultz II ff902369e0
Fix 10851: False positive: known variable value below for loop (#3891)
* Fix 10851: False positive: known variable value below for loop

* Format

* Add test for 10863

* Format
2022-03-12 06:15:35 +01:00
chrchr-github 705931266c
constStatementError: don't warn for casts with possible side effects,… (#3885)
* constStatementError: don't warn for casts with possible side effects, handle bool constants

* Recursive call, add tests

* Restore test

* Don't warn for C++ casts to void

* Don't warn for cast to void*
2022-03-11 21:45:51 +01:00
chrchr-github ffd9f9a93f
Fix FP missingOverride with unnamed parameters (#3887) 2022-03-11 21:44:13 +01:00
Binho 8b3647edd7 Fix false positive in memory leak 2022-03-10 08:29:05 +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
chrchr-github 850ad0fed9
#8451: Add error message for unused casts, log unhandled errors (#3883)
* #8451: Add error message for unused casts, log unhandled errors

* Fix TODO

* Fix TODO
2022-03-09 18:21:47 +01:00
chrchr-github c9f47dec8b
Partial fix for #9384 varid 0 with lambda (#3875) 2022-03-08 20:10:51 +01:00
chrchr-github fbdfb60809
Warn about buffer overruns when allocating memory with new (#3879)
* Warn about buffer overruns when allocating memory with new

* Format

* Avoid FP
2022-03-07 19:43:40 +01:00
chrchr-github 25360d5e4c
Add test for #7686 (#3878)
* Add test for #7686

* Format
2022-03-07 15:32:14 +01:00
chrchr-github 461d797094
Add test for #10835 (#3877) 2022-03-07 10:44:46 +01:00
orbitcowboy 1d2beb0431 Added a regression test for ticket 6928 - Improve check: unused variables, goto 2022-03-07 10:12:57 +01:00
chrchr-github 3a5931b417
Fix #5499 C++11 default values not for all class fields and missing constructor (#3876) 2022-03-07 08:39:19 +01:00
chrchr-github 7f682d544e
Partial fix for #6615 FN buffer access out of bounds: std::vector (#3873)
* Fix #10779 FN: stlOutOfBounds (off by one)

* Format

* Simplify

* Partial fix for #6615 FN buffer access out of bounds: std::vector

* Undo

* Format

* Fix test case
2022-03-06 07:41:09 +01:00
chrchr-github 0b0a8cad39
Fix #10846 FP unreadVariable within a macro (regression) (#3874)
* Fix #10846 FP unreadVariable within a macro (regression)

* Format

* Format
2022-03-05 08:14:57 +01:00
chrchr-github 27baa20f38
Fix #10779 FN: stlOutOfBounds (off by one) (#3872)
* Fix #10779 FN: stlOutOfBounds (off by one)

* Format

* Simplify
2022-03-04 17:13:13 +01:00
chrchr-github 2dd6c75b35
Fix #10838 Crash/nullptr deref in getEndOfExprScope() (#3870)
* Fix #10838 Crash/nullptr deref in getEndOfExprScope()

* Format
2022-03-03 17:08:23 +01:00
chrchr-github 78dd29ada3
Fix #10770 FP noConstructor with function pointer member (#3751) 2022-03-03 13:56:24 +01:00
chrchr-github 8a7992c6ac
Suppress operatorEqVarError for known non-copyable types (#3869)
* Fix FP operatorEqVarError with class hierarchy

* Suppress operatorEqVarError for std::mutex

* Add test, non-copyable Qt types

* Update cppcheck-cfg.rng
2022-03-03 09:41:26 +01:00
Daniel Marjamäki 915ae4b845 ValueFlow: Fix crash 2022-03-02 21:12:37 +01:00
chrchr-github 9c50136571
Fix #10824 FN unreadVariable for pointer assignment when destructor exists (regression) (#3864)
* Fix #10824 FN unreadVariable for pointer assignment when destructor exists (regression)

* unused variable

* Issue warning for missing cfg

* Format
2022-03-02 11:11:44 +01:00
Oliver Stöneberg de728f472c
removed ThreadExecutor::addFileContent() (#3865) 2022-03-02 11:10:29 +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