From d23024391edab80b5122b70272ba40aaa068853c Mon Sep 17 00:00:00 2001 From: orbitcowboy Date: Fri, 5 Jan 2024 11:17:42 +0100 Subject: [PATCH 1/2] Ticket 6306: Added regression test and mention suppression in comment --- test/cfg/std.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp index 86dde6e17f4..3df002165dd 100644 --- a/test/cfg/std.cpp +++ b/test/cfg/std.cpp @@ -4290,6 +4290,24 @@ void nullPointer_istream_read(std::istream &f) f.read(NULL, 10); } +std::size_t nullPointer_strxfrm(char *dest, const char *src, std::size_t count) +{ + (void)strxfrm(dest, src, count); + // In case the 3rd argument is 0, the 1st argument is permitted to be a null pointer. (#6306) + (void)strxfrm(nullptr, src, count); + // cppcheck-suppress nullPointer + return strxfrm(dest, nullptr, count); +} + +std::size_t nullPointer_wcsxfrm(wchar_t *dest, const wchar_t *src, std::size_t count) +{ + (void)wcsxfrm(dest, src, count); + // In case the 3rd argument is 0, the 1st argument is permitted to be a null pointer. (#6306) + (void)wcsxfrm(nullptr, src, count); + // cppcheck-suppress nullPointer + return wcsxfrm(dest, nullptr, count); +} + void nullPointer_asctime(void) { const struct tm *tm = 0; From 349b6d1ccf93707ebef9eca0c5e46cdc3655b1a4 Mon Sep 17 00:00:00 2001 From: orbitcowboy Date: Fri, 5 Jan 2024 11:21:58 +0100 Subject: [PATCH 2/2] Ticket 6306: Added more tests --- test/cfg/std.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp index 3df002165dd..8a2eafb3921 100644 --- a/test/cfg/std.cpp +++ b/test/cfg/std.cpp @@ -4294,6 +4294,8 @@ std::size_t nullPointer_strxfrm(char *dest, const char *src, std::size_t count) { (void)strxfrm(dest, src, count); // In case the 3rd argument is 0, the 1st argument is permitted to be a null pointer. (#6306) + (void)strxfrm(nullptr, src, 0); + (void)strxfrm(nullptr, src, 1); (void)strxfrm(nullptr, src, count); // cppcheck-suppress nullPointer return strxfrm(dest, nullptr, count); @@ -4303,6 +4305,8 @@ std::size_t nullPointer_wcsxfrm(wchar_t *dest, const wchar_t *src, std::size_t c { (void)wcsxfrm(dest, src, count); // In case the 3rd argument is 0, the 1st argument is permitted to be a null pointer. (#6306) + (void)wcsxfrm(nullptr, src, 0); + (void)wcsxfrm(nullptr, src, 1); (void)wcsxfrm(nullptr, src, count); // cppcheck-suppress nullPointer return wcsxfrm(dest, nullptr, count);