2018-08-13 Jonathan Wakely <jwakely@redhat.com>
+ PR libstdc++/45093
+ * include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)):
+ Combine definitions to avoid --detect-odr-violations warning.
+
* libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use
__is_pow2 to check for valid alignment. Avoid branching when rounding
size to multiple of alignment.
_M_construct_node(__tmp, __x);
return __tmp;
}
-
- void
- _M_destroy_node(_Link_type __p)
- { get_allocator().destroy(__p->_M_valptr()); }
#else
template<typename... _Args>
void
_M_construct_node(__tmp, std::forward<_Args>(__args)...);
return __tmp;
}
+#endif
void
- _M_destroy_node(_Link_type __p) noexcept
+ _M_destroy_node(_Link_type __p) _GLIBCXX_NOEXCEPT
{
+#if __cplusplus < 201103L
+ get_allocator().destroy(__p->_M_valptr());
+#else
_Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr());
__p->~_Rb_tree_node<_Val>();
- }
#endif
+ }
void
_M_drop_node(_Link_type __p) _GLIBCXX_NOEXCEPT