Rikard Falkeborn
d4cd249c21
10671 fix const iterator function const take two ( #3802 )
...
* Revert "Revert "Fix #10671 : functionConst FN with begin/end and const_iterator (#3749 )""
This reverts commit 9f6a36c1a8
.
* Fix crash by adding missing null check
2022-02-11 21:23:23 +01:00
chrchr-github
cd7532df21
Fix #7709 FN C-style pointer casting with built-in or typedef types /… ( #3814 )
2022-02-10 20:48:51 +01:00
orbitcowboy
2f17147900
std.cfg: Improved configuration for fseek(). The 3rd argument is not allowed to be of Boolean type.
2022-02-07 09:02:24 +01:00
orbitcowboy
fa776051e9
Fixed Ticket 1001 - std.cfg: Invalid parameters for fseek()
2022-02-06 16:05:14 +01:00
orbitcowboy
31ea13eb0c
test std.cfg: Fixed wrong npos constant.
2022-02-04 12:39:43 +01:00
orbitcowboy
7062b0a973
std.cfg: Improved configuration of std::[w]string::substr(). Do not allow negative length arguments.
2022-02-04 12:30:37 +01:00
Daniel Marjamäki
9f6a36c1a8
Revert "Fix #10671 : functionConst FN with begin/end and const_iterator ( #3749 )"
...
This reverts commit 2cacb13f85
.
2022-02-03 11:04:02 +01:00
Rikard Falkeborn
2cacb13f85
Fix #10671 : functionConst FN with begin/end and const_iterator ( #3749 )
...
Check if the iterator is assigned to a const_iterator or
const_revese_iterator, in which case it is possible the function can be
const. Unfortunately, it is not possible to remove the hard coding of
cbegin, cend, crbegin and crend due to the need to handle auto, as in
the following code snippet:
void cbegin_auto(void)
{
for (auto it = m_str.cbegin(); it != m_str.cend(); ++it) {;}
}
2022-02-02 19:37:06 +01:00
chrchr-github
cb5a50c6a7
Fix #10710 FN passedByValue with QString ( #3696 )
2022-01-18 20:17:05 +01:00
Daniel Marjamäki
b3f9df968b
Uninitvar: fixed 'make checkcfg'
2021-10-03 20:32:39 +02:00
orbitcowboy
46f7275833
#8113 : Added a regression test.
2021-08-09 18:30:29 +02:00
Paul Fultz II
7f358b2bed
Format with uncrustify ( #3388 )
2021-08-07 20:51:18 +02:00
orbitcowboy
8096fa4db1
std.cfg: Added overlappingWriteFunction-check to wcsncat().
2021-07-16 14:30:49 +02:00
orbitcowboy
9b46f59ff0
std.cfg: Cleanup wrong test case.
2021-07-16 14:25:04 +02:00
orbitcowboy
e90a3053d4
std.cfg: Added a overlappingWriteFunction-check to strncat
2021-07-16 14:01:40 +02:00
orbitcowboy
435cffa858
std.cfg: Improved configuration of std::next(),std::prev() and added TODO tests
2021-07-14 10:12:49 +02:00
orbitcowboy
7ad64891ea
Added tests for overlapping data.
2021-07-10 18:28:26 +02:00
orbitcowboy
c38a43c353
std.cfg: Added overlappingWriteFunction check to wcscpy().
2021-07-10 09:20:51 +02:00
orbitcowboy
652e2765bc
std.cfg: Added support for wcsncpy regarding data-overlapping
2021-07-09 16:32:54 +02:00
Daniel Marjamäki
86f1acc223
overlapping data; use the size value given by size-arg
2021-07-09 13:43:29 +02:00
orbitcowboy
58811808d5
std.cfg: Improved configuration of 'strncpy', which is vulnerable for overlapping write issues.
2021-07-09 09:48:24 +02:00
orbitcowboy
f626035963
std.cfg: Added support for more interfaces
2021-06-03 08:07:53 +02:00
orbitcowboy
39912b5096
std.cfg: Added support for more interfaces
2021-06-03 07:55:26 +02:00
orbitcowboy
4c81a59c0b
std.cfg: Added support for more interfaces
2021-06-03 07:33:23 +02:00
keinflue
6b8029633f
Fix build warnings and checkcfg errors with musl and libc++. ( #3244 )
...
* Fix musl include warning.
* Fix test/cfg errors with musl/libc++.
* Use correct C++ include for PR #3244
Co-authored-by: keinflue <>
2021-05-03 09:39:33 +02:00
orbitcowboy
2c15c384d1
Fixed some typos, there are no functional changes intended
2020-12-05 08:00:31 +01:00
orbitcowboy
cabafca5ae
windows.cfg: Added some constants from WinUser.h
2020-07-01 16:14:59 +02:00
orbitcowboy
02adb60f08
test std.cfg: Added a regression test for std::vsprintf(). The first argument is allowed to be a null pointer.
2019-11-11 09:29:16 +01:00
orbitcowboy
f59a2b491d
#9455 : Added a test case.
2019-11-05 14:00:50 +01:00
versat
094caf31ac
std.cfg: Remove redundant configurations for vector::(push|pop)_back()
...
Add tests in std.cpp to verify that a configuration for the functions
exists.
2019-10-18 12:40:10 +02:00
Sebastian
8eea046e5b
std.cfg: Add support for std::fill_n() ( #2273 )
...
Reference: https://en.cppreference.com/w/cpp/algorithm/fill_n
2019-10-18 12:24:57 +02:00
Sebastian
5615da4547
std.cfg: Add configuration and tests for std::bind() ( #2207 )
...
TODO:
Somehow Cppcheck fails to print an ignoredReturnValue message when the
return value is not used (see ticket
https://trac.cppcheck.net/ticket/9369 )
2019-09-24 12:16:13 +02:00
Paul Fultz II
ba037837c9
Track lifetime across multiple returns
...
This will now warn when doing something like this:
```cpp
template <class T, class K, class V>
const V& get_default(const T& t, const K& k, const V& v) {
auto it = t.find(k);
if (it == t.end()) return v;
return it->second;
}
const int& bar(const std::unordered_map<int, int>& m, int k) {
auto x = 0;
return get_default(m, k, x);
}
```
The lifetime warning is considered inconclusive in this case.
I also updated valueflow to no tinject inconclusive values unless `--inconclusive` flag is passed. This creates some false negatives because library functions are not configured to not modify their input parameters, and there are some checks that do not check if the value is inconclusive or not.
2019-09-11 19:25:09 +02:00
orbitcowboy
1994cbbb9c
std.cfg: Improved configuration for mbrlen() and extended test cases.
2019-08-27 08:18:19 +02:00
Sebastian
0934577dda
Library configuration: function argument direction fixes and enhancements ( #1722 )
...
* std.cfg: Add further argument directions (in, out, inout).
* testlibrary.cpp: Add test for function argument direction configuration.
* std.cfg: runastyle and add some more direction configurations.
* library.h: Add documentation for function argument direction enum.
* Do not use "direction" library information for pointer arguments.
Also fix further unmatched uninitvar messages in std configuration
tests.
* std.cfg: Add more argument direction configurations.
* test/cfg/std.c: Add test for argument direction configuration.
* astutils.cpp: Only ignore pointer arguments for out/inout arguments.
* library.h: Use suggested documentation for argument direction enum.
2019-03-04 22:57:40 +01:00
Daniel Marjamäki
5087f15035
Travis: Try to fix 'make checkcfg'
2019-03-02 19:38:11 +01:00
Sebastian
3427e61383
std.cfg: Add support for std::string::assign() ( #1660 )
...
Reference: https://en.cppreference.com/w/cpp/string/basic_string/assign
2019-02-11 13:40:36 +01:00
orbitcowboy
611eb81302
Fixed checkcfg: test/cfg/std.cpp:2904:error:uninitvar:Uninitialized variable: s
2018-12-23 18:09:55 +01:00
Daniel Marjamäki
ec89c7b1b8
Travis: redundantCopy is not detected at the moment
2018-11-24 11:27:27 +01:00
orbitcowboy
b4aa04db41
std.cfg: Added returnValue calculation for isless(), islessgreater() etc.
2018-11-20 16:58:33 +01:00
orbitcowboy
54c5d09ed3
test:std.cpp: Removed duplicate include <csetjmp>.
2018-10-06 00:23:14 +02:00
orbitcowboy
ef82477d11
std.cfg: Do not take the return value of std::locale::global() into account.
2018-05-30 16:04:40 +02:00
orbitcowboy
5b6e6db376
test std.cfg: Added more test cases for strcat() functions.
2018-05-27 10:16:02 +02:00
Sebastian
b53c4b2032
std.cfg: Add std::vector function configurations and tests ( #1180 )
2018-04-19 16:41:25 +02:00
Sebastian
a36dad918a
std.cfg: Add std::make_pair() ( #1165 )
2018-04-11 19:16:55 +02:00
orbitcowboy
ef62207ada
std.cfg: Added more tests for some std::vector functions.
2018-04-11 17:21:26 +02:00
Sebastian
3fc53eb122
std.cfg: Add std::[w]string::compare() with tests ( #1162 )
2018-04-10 21:07:39 +02:00
Daniel Marjamäki
b10dd5d21e
2 TODOs are fixed
2018-03-19 11:02:58 +01:00
Daniel Marjamäki
58034dee86
Fixed #8076 (unmatched suppression when calling ./runtests.sh (test/cfg))
2018-01-10 15:52:06 +01:00
U-SAMS\Alexander
a8e12a6f29
Fix&cheat to make config test pass on cygwin
2017-05-03 11:41:37 +02:00
Matthias Krüger
65846efb6b
test/cfg/std.cpp fix 'make checkcfg', std::vector needs to have <vector> #included
2017-03-06 16:59:17 +01:00
orbitcowboy
e3d879e43d
std.cfg: Improved support for some std::wstring functions.
2017-03-06 16:40:49 +01:00
Daniel Marjamäki
302bf925df
Remove test/cfg/std.cpp test that fails
2017-03-06 12:39:08 +01:00
Daniel Marjamäki
d535f17489
testing std::string and std::vector configuration a little
2017-03-05 22:23:45 +01:00
Daniel Marjamäki
ecc59859e1
Don't simplify _Bool in TokenList
2017-03-04 11:13:28 +01:00
Daniel Marjamäki
a8424bcb54
Test get/getline/read/readsome configuration in std.cfg
2017-03-04 08:56:37 +01:00
orbitcowboy
75124317e9
std.cfg: Added returnValue support for iswblank().
2016-11-04 14:03:48 +01:00
Daniel Marjamäki
18f466a880
Test std::for_each
2016-11-02 10:01:56 +01:00
Daniel Marjamäki
fd67bbf2d3
Test std::count and std::count_if
2016-11-02 09:57:35 +01:00
Daniel Marjamäki
12319d705e
Try to fix 'make checkcfg'
2016-11-02 09:50:37 +01:00
Daniel Marjamäki
b90a17f64f
Test std::all_of, std::any_of, std::none_of
2016-11-02 09:29:15 +01:00
Daniel Marjamäki
6e762659c0
Test std::find_if and std::find_if_not
2016-11-02 09:13:54 +01:00
Daniel Marjamäki
0e9810b7f6
CheckStl: validation of iterators returned from functions
2016-11-01 14:08:42 +01:00
Daniel Marjamäki
476789c1a7
Remove unused variable in test
2016-11-01 12:44:31 +01:00
Daniel Marjamäki
7f71ad8360
Test std::find()
2016-11-01 12:25:23 +01:00
Daniel Marjamäki
7242e661ef
checkcfg: add missing inline suppression for ignoredReturnValue of abs()
2016-10-18 22:35:54 +02:00
orbitcowboy
87409ea6b3
Running astyle; Improved testing of std::find; std.cfg: Added support for istream::read and ifstream::read.
2016-08-25 19:17:07 +02:00
Daniel Marjamäki
e8182395f7
Fix 'make checkcfg' by adding inline suppressions when obsolete functions are used.
2015-11-22 17:52:47 +01:00
Martin Ettl
12b4bf75e0
std.cfg: Fixed false negatives regarding uninitialized variable usage and added test cases.
2015-09-30 13:10:31 +02:00
Martin Ettl
0b782853fe
Imroved std.cfg and added more test cases.
2015-09-30 12:45:40 +02:00
Martin Ettl
4fcd324ccd
Improved testing of std.cfg regarding <arg nr=any> configured functions and added more test cases.
2015-09-30 12:18:56 +02:00
Martin Ettl
c64f9cf9b1
#7012 : Fixed FP in std.cfg by explicitly definining the first parameter of snprintf.
2015-09-29 21:33:39 +02:00
Martin Ettl
7476f0d1c2
std.cfg: Added support for wmemcmp() and corresponding test cases.
2015-09-23 22:46:36 +02:00
Martin Ettl
34dcf1182c
test/cfg: Deactivated a test case in std.cpp, which tests std::string::find (three parameter version). It cases the travis build to be failing.
2015-09-22 20:54:25 +02:00
Martin Ettl
10da5d6d2f
std.cfg: Added configuration for std::string:find.
2015-09-21 23:01:51 +02:00
Martin Ettl
39622417b1
Improved std.cfg and added coressponding test cases to test/cfg.
2015-09-18 23:57:20 +02:00
Martin Ettl
841ad5462d
test/cfg: Improved std.cfg and added corresponding test cases.
2015-09-18 23:02:51 +02:00
Martin Ettl
fc4b9d320d
test/cfg: Improved testing of std.cfg about std::stod().
2015-09-18 16:25:05 +02:00
orbitcowboy
fd81ee9804
test/cfg: Improved testing of std.cfg regarding uninitialized and nullPointer checks.
2015-09-11 16:50:59 +02:00
orbitcowboy
3187a2b972
test/cfg: Improved testing of std.cfg regarding null pointer dereferences.
2015-09-11 16:29:39 +02:00
orbitcowboy
7ae7cdd17b
test/cfg: Added test cases for std::string find, that demonstrate false negatives in case of uninitialized variable ( #6991 ).
2015-09-10 17:03:50 +02:00
orbitcowboy
5e50166135
Improved testing of std.cfg.
2015-09-10 16:45:14 +02:00
orbitcowboy
2b416419de
test/cfg: Improved testing of std.cfg regarding uninitialized variables.
2015-09-09 16:59:26 +02:00
orbitcowboy
52090f5725
test/cfg: Improved testing of std.cfg regarding uninitialized variables.
2015-09-09 16:32:52 +02:00
orbitcowboy
e929e9e7d9
test/cfg: Improved testing of std.cfg regarding uninitialized variables.
2015-09-08 16:08:43 +02:00
orbitcowboy
60770a8fdc
test/cfg: Improved testing of std.cfg regarding uninitialized variables.
2015-09-08 15:43:22 +02:00
orbitcowboy
7d229f082c
test/cfg: Improved testing of std.cfg regarding uninitialized variables.
2015-09-08 11:45:13 +02:00
orbitcowboy
03495360d8
test/cfg: Improved testing of std.cfg regarding uninitialized variables.
2015-09-07 16:57:34 +02:00
Martin Ettl
6304eb35f9
Improved testing of std.cfg regarding uninitialized variables.
2015-09-04 23:45:31 +02:00
Martin Ettl
27b3461e84
Fixed #6974 - false negative: uninitialized variable not detected (signal).
2015-09-04 22:48:00 +02:00
orbitcowboy
5428813534
Improved testing of std.cfg regarding uninitialized variables.
2015-09-04 11:59:19 +02:00
orbitcowboy
c955fafd84
Improved testing of std.cfg regarding uninitialized variables.
2015-09-04 11:26:43 +02:00
orbitcowboy
9daf78527f
Improved testing of std.cfg regarding uninitialized variables.
2015-09-03 16:34:44 +02:00
orbitcowboy
84d8a869d0
Improved testing of std.cfg regarding uninitialized variables.
2015-09-03 16:03:16 +02:00
orbitcowboy
34551203a6
Improved testing of std.cfg regarding uninitialized variables.
2015-09-02 17:08:25 +02:00
orbitcowboy
89c4e08fc4
Improved testing of std.cfg regarding uninitialized variables.
2015-09-02 15:43:52 +02:00
orbitcowboy
651e225069
Improved testing of std.cfg regarding uninitialized variables.
2015-09-02 12:00:03 +02:00
orbitcowboy
d87d2ff779
Improved testing of std.cfg regarding uninitialized variables.
2015-09-01 16:50:36 +02:00
orbitcowboy
c64e74492b
Improved testing of std.cfg regarding uninitialized variables.
2015-09-01 11:59:24 +02:00
orbitcowboy
974414645a
Improved testing of std.cfg regarding uninitialized variables.
2015-09-01 11:29:28 +02:00