Commit c3866869 by Jonathan Wakely Committed by Jonathan Wakely

re PR libstdc++/61909 (Small function optimization not applied to small objects)

	PR libstdc++/61909
	* include/std/functional (__is_location_invariant): Treat all
	trivially copyable types as location invariant.

From-SVN: r216047
parent bc2da0fc
......@@ -7,6 +7,10 @@
* include/std/atomic (atomic): Add assertion for trivially copyable.
* testsuite/29_atomics/atomic/60695.cc: Adjust line number.
PR libstdc++/61909
* include/std/functional (__is_location_invariant): Treat all
trivially copyable types as location invariant.
2014-10-09 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/60132
......
......@@ -1743,11 +1743,12 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type)
/**
* Trait identifying "location-invariant" types, meaning that the
* address of the object (or any of its members) will not escape.
* Also implies a trivial copy constructor and assignment operator.
* Trivially copyable types are location-invariant and users can
* specialize this trait for other types.
*/
template<typename _Tp>
struct __is_location_invariant
: __or_<is_pointer<_Tp>, is_member_pointer<_Tp>>::type
: is_trivially_copyable<_Tp>::type
{ };
class _Undefined_class;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment