[committed] libstdc++: Implement std::out_ptr and std::inout_ptr for C++23 [PR111667]

Hans-Peter Nilsson hp@axis.com
Fri Nov 17 04:43:55 GMT 2023


> From: Jonathan Wakely <jwakely@redhat.com>
> Date: Thu, 16 Nov 2023 08:12:39 +0000

> 	PR libstdc++/111667
> 	* include/Makefile.am: Add new header.
> 	* include/Makefile.in: Regenerate.
> 	* include/bits/out_ptr.h: New file.
> 	* include/bits/shared_ptr.h (__is_shared_ptr): Move definition
> 	to here ...
> 	* include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from
> 	here.
> 	* include/bits/shared_ptr_base.h (__shared_count): Declare
> 	out_ptr_t as a friend.
> 	(_Sp_counted_deleter, __shared_ptr): Likewise.
> 	* include/bits/unique_ptr.h (unique_ptr, unique_ptr<T[], D>):
> 	Declare out_ptr_t and inout_ptr_t as friends.
> 	(__is_unique_ptr): Define new variable template.
> 	* include/bits/version.def (out_ptr): Define.
> 	* include/bits/version.h: Regenerate.
> 	* include/std/memory: Include new header.
> 	* testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test.
> 	* testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test.
> 	* testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc:
> 	New test.
> 	* testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New
> 	test.
> 	* testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test.
> 	* testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test.
> 	* testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc:
> 	New test.
> 	* testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New
> 	test.

This commit, r14-5524-gc7f6537db94f7c, exposed or caused, for several targets:
FAIL: g++.dg/modules/xtreme-header-4_b.C -std=c++2b (internal compiler error: tree check: expected class 'type', have 'declaration' (template_decl) in get_originating_module_decl, at cp/module.cc:18649)
FAIL: g++.dg/modules/xtreme-header-4_b.C -std=c++2b (test for excess errors)
FAIL: g++.dg/modules/xtreme-header-5_b.C -std=c++2b (internal compiler error: tree check: expected class 'type', have 'declaration' (template_decl) in get_originating_module_decl, at cp/module.cc:18649)
FAIL: g++.dg/modules/xtreme-header-5_b.C -std=c++2b (test for excess errors)
FAIL: g++.dg/modules/xtreme-header_b.C -std=c++2b (internal compiler error: tree check: expected class 'type', have 'declaration' (template_decl) in get_originating_module_decl, at cp/module.cc:18649)
FAIL: g++.dg/modules/xtreme-header_b.C -std=c++2b (test for excess errors)

See PR 112580.

(BTW, I can't tell from the archive, whether the
"Linaro-TCWG-CI" tester notified you or just sent its report
to the gcc-regression@ list.)

brgds, H-P


More information about the Libstdc++ mailing list