diff --git a/cfg/std.cfg b/cfg/std.cfg index 6cd0c371a5e..70e9cc17746 100644 --- a/cfg/std.cfg +++ b/cfg/std.cfg @@ -7130,6 +7130,16 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun false + + + + + + + + + false + @@ -7137,6 +7147,13 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun false + + + + + + false + diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp index 8a9976a94ae..7e406ca2187 100644 --- a/test/cfg/std.cpp +++ b/test/cfg/std.cpp @@ -5166,6 +5166,20 @@ void constVariablePointer_push_back(std::vector& d, const std::vector& s } } +struct S_constVariablePointer_wstring { // #14575 + std::wstring m; + const std::wstring& get() const { return m; } +}; + +S_constVariablePointer_wstring* g_constVariablePointer_wstring(); + +void h_constVariablePointer_wstring(const wchar_t*); + +void f_constVariablePointer_wstring() { + S_constVariablePointer_wstring* s = g_constVariablePointer_wstring(); // cppcheck-suppress constVariablePointer + h_constVariablePointer_wstring(s->get().c_str()); +} + std::streampos constParameterPointer_istream_tellg(std::istream* p) { // #13801 return p->tellg(); } @@ -5318,4 +5332,4 @@ int containerOutOfBounds_std_initializer_list() { // #14340 // cppcheck-suppress derefInvalidIterator int i = *x.end(); return i + containerOutOfBounds_std_initializer_list_access(x); -} \ No newline at end of file +}