]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc
Use effective-target instead of -std options
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 20_util / enable_shared_from_this / 56383.cc
CommitLineData
818ab71a 1// Copyright (C) 2015-2016 Free Software Foundation, Inc.
28eca950
JW
2//
3// This file is part of the GNU ISO C++ Library. This library is free
4// software; you can redistribute it and/or modify it under the
5// terms of the GNU General Public License as published by the
6// Free Software Foundation; either version 3, or (at your option)
7// any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13
14// You should have received a copy of the GNU General Public License along
15// with this library; see the file COPYING3. If not see
16// <http://www.gnu.org/licenses/>.
17
52066eae 18// { dg-do run { target c++11 } }
28eca950
JW
19
20#include <memory>
21#include <testsuite_hooks.h>
22
23struct A : std::enable_shared_from_this<A>
24{
25 void* a() { return shared_from_this().get(); }
26};
27
28struct B : std::enable_shared_from_this<B>
29{
30};
31
32struct D : A, B
33{
34};
35
36void test01()
37{
38 bool test = false;
39
40 auto d = std::make_shared<D>();
41 try
42 {
43 d->a();
44 }
45 catch (const std::bad_weak_ptr&)
46 {
47 test = true;
48 }
49 VERIFY(test);
50}
51
52int
53main()
54{
55 test01();
56}