From: Will Hawkins Date: Mon, 4 Dec 2023 20:59:44 +0000 (+0000) Subject: libstdc++: Add test for LWG Issue 3897 X-Git-Tag: basepoints/gcc-15~3951 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9fff752695648b06a977b046990d69d41a1bf702;p=thirdparty%2Fgcc.git libstdc++: Add test for LWG Issue 3897 Add a test to verify that the implementation of inout_ptr is not vulnerable to LWG Issue 3897. libstdc++-v3/ChangeLog: * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: Add check for LWG Issue 3897. Co-authored-by: Jonathan Wakely --- diff --git a/libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/2.cc b/libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/2.cc index ca6076209c2f..b4a2d95227a1 100644 --- a/libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/2.cc +++ b/libstdc++-v3/testsuite/20_util/smartptr.adapt/inout_ptr/2.cc @@ -96,7 +96,22 @@ test_unique_ptr() VERIFY( upbd->id == 2 ); } +void +test_lwg3897() +{ + // Verify that implementation handles LWG Issue 3897 + auto nuller = [](int** p) { + delete *p; + *p = nullptr; + }; + int* i = new int{5}; + nuller(std::inout_ptr(i)); + + VERIFY( i == nullptr ); +} + int main() { test_unique_ptr(); + test_lwg3897(); }