OSDN Git Service

493bd84a77c81b2498728abe688f6f6d6d5331aa
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / testsuite / tr1 / 2_general_utilities / memory / enable_shared_from_this / not_shared.cc
1 // { dg-do run { xfail *-*-* } }
2 // Copyright (C) 2005 Free Software Foundation
3 //
4 // This file is part of the GNU ISO C++ Library.  This library is free
5 // software; you can redistribute it and/or modify it under the
6 // terms of the GNU General Public License as published by the
7 // Free Software Foundation; either version 2, or (at your option)
8 // any later version.
9
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14
15 // You should have received a copy of the GNU General Public License along
16 // with this library; see the file COPYING.  If not, write to the Free
17 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
18 // USA.
19
20 // 2.2.5 Template class enable_shared_from_this [tr.util.smartptr.enab]
21
22 #include <tr1/memory>
23 #include <testsuite_hooks.h>
24
25 struct X : public std::tr1::enable_shared_from_this<X>
26 {
27 };
28
29 int
30 test01()
31 {
32   bool test __attribute__((unused)) = true;
33
34   X x;
35
36   try
37   {
38     std::tr1::shared_ptr<X> p = x.shared_from_this();
39   }
40   catch (const std::tr1::bad_weak_ptr&)
41   {
42     __throw_exception_again;
43   }
44   catch (...)
45   {
46   }
47
48   return 0;
49 }
50
51 int 
52 main()
53 {
54   test01();
55   return 0;
56 }