Fortran: Fix PR 47485.
[gcc.git] / gcc / testsuite / g++.dg / warn / Wdangling-pointer-6.C
blob20d47edecc5f9b75f190ec88d04ca00673335a29
1 // PR c++/109514
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;
7 };
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; }
12 struct _Rb_tree {
13   _Rb_tree_header _M_impl;
14   _Rb_tree_node_base *&_M_root() { return _M_impl._M_header._M_parent; }
15   _Rb_tree();
16   _Rb_tree &operator=(_Rb_tree &&);
18 _Rb_tree &_Rb_tree::operator=(_Rb_tree &&) {
19   if (_M_root())
20     _M_impl._M_move_data();
21   return *this;
23 struct set {
24   _Rb_tree _M_t;
26 set FilterRs();
27 void f() {
28   set rs;
29   rs = FilterRs();