8sa1-gcc/libstdc++-v3/include
Jonathan Wakely 1b749ae95e PR libstdc++/83860 avoid dangling references in valarray closure types
Store nested closures by value not by reference, to prevent holding
invalid references to temporaries that have been destroyed. This
changes the layout of the closure types, so change their linkage names,
but moving them to a different namespace.

	PR libstdc++/57997
	PR libstdc++/83860
	* include/bits/gslice_array.h (gslice_array): Define default
	constructor as deleted, as per C++11 standard.
	* include/bits/mask_array.h (mask_array): Likewise.
	* include/bits/slice_array.h (slice_array): Likewise.
	* include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
	to namespace __detail.
	(_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
	members.
	* include/bits/valarray_before.h (_ValArrayRef): New helper for type
	of data members in closure objects.
	(_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
	(_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
	__detail.
	(_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
	(_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
	(_SBase::_M_expr): Use _ValArrayRef for type of data members.
	* include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
	(_ValFunClos, _RefFunClos): Move to namespace __detail and add
	using-declarations to namespace std.
	* testsuite/26_numerics/valarray/83860.cc: New.

From-SVN: r259844
2018-05-02 17:41:46 +01:00
..
backward PR libstdc++/69608 Move semantics for strstreambuf 2018-05-02 17:25:44 +01:00
bits PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
c Update copyright years. 2018-01-03 11:03:58 +01:00
c_compatibility Update copyright years. 2018-01-03 11:03:58 +01:00
c_global PR libstdc++/84773 use aligned alloc functions for FreeBSD and MinGW cross-compilers 2018-03-12 22:52:16 +00:00
c_std Update copyright years. 2018-01-03 11:03:58 +01:00
debug re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) 2018-03-20 21:45:14 +00:00
decimal Update copyright years. 2018-01-03 11:03:58 +01:00
experimental Avoid redundant calls to filesystem::status_known 2018-01-04 13:46:22 +00:00
ext aligned_buffer.h [...] (template<> __aligned_buffer): Define as __aligned_membuf alias. 2018-02-20 20:51:44 +00:00
parallel Update copyright years. 2018-01-03 11:03:58 +01:00
precompiled Update copyright years. 2018-01-03 11:03:58 +01:00
profile Update copyright years. 2018-01-03 11:03:58 +01:00
std PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
tr1 Update copyright years. 2018-01-03 11:03:58 +01:00
tr2 Update copyright years. 2018-01-03 11:03:58 +01:00
Makefile.am PR libstdc++/84654 Disable __float128 specializations for -mno-float128 2018-05-01 23:47:33 +01:00
Makefile.in PR libstdc++/84654 Disable __float128 specializations for -mno-float128 2018-05-01 23:47:33 +01:00