mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-16 13:01:21 +08:00
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
This commit is contained in:
parent
bc2da0fc04
commit
c386686921
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user