OSDN Git Service

2009-11-20 Jonathan Wakely <jwakely.gcc@gmail.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / testsuite / 20_util / shared_ptr / misc / 42019.cc
1 // { dg-options "-std=gnu++0x -fno-rtti" }
2 // Copyright (C) 2009 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 3, 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 COPYING3.  If not see
17 // <http://www.gnu.org/licenses/>.
18
19 // 20.8.15.2 Template class shared_ptr [util.smartptr.shared]
20
21 #include <memory>
22 #include <testsuite_hooks.h>
23
24 // libstdc++/42019
25
26 class A {};
27
28 struct B {
29   explicit B(int i) : i(i) { }
30   int i;
31 };
32
33 void test01()
34 {
35   bool test __attribute__((unused)) = true;
36
37   std::shared_ptr<A> spA = std::make_shared<A>();
38
39   VERIFY( spA.get() != 0 );
40 }
41
42 void test02()
43 {
44   bool test __attribute__((unused)) = true;
45
46   std::shared_ptr<B> spB = std::make_shared<B>(99);
47
48   VERIFY( spB->i == 99 );
49 }
50
51 int main()
52 {
53   test01();
54   test02();
55   return 0;
56 }