2 // { dg-do compile { target c++11 } }
3 // { dg-additional-options "-O2 -Werror=dangling-pointer" }
5 struct _Rb_tree_node_base {
6 _Rb_tree_node_base *_M_parent;
8 struct _Rb_tree_header {
9 _Rb_tree_node_base _M_header;
10 void _M_move_data() { _M_header._M_parent->_M_parent = &_M_header; }
13 _Rb_tree_header _M_impl;
14 _Rb_tree_node_base *&_M_root() { return _M_impl._M_header._M_parent; }
16 _Rb_tree &operator=(_Rb_tree &&);
18 _Rb_tree &_Rb_tree::operator=(_Rb_tree &&) {
20 _M_impl._M_move_data();