]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/18_support/50594.cc
tree-ssa-loop-im.c (struct depend): Remove.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 18_support / 50594.cc
CommitLineData
578f0234
PC
1// { dg-options "-fwhole-program" }
2
405feeb8 3// Copyright (C) 2011-2013 Free Software Foundation, Inc.
578f0234
PC
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 3, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING3. If not see
18// <http://www.gnu.org/licenses/>.
19
20#include <new>
21#include <string>
22#include <cstdlib>
23#include <testsuite_hooks.h>
24
25bool user_new_called;
26bool user_delete_called;
27
28void* operator new(std::size_t n)
734f5023 29#if __cplusplus < 201103L
578f0234
PC
30 throw(std::bad_alloc)
31#endif
32{
33 user_new_called = true;
34
35 void* p = std::malloc(n);
36
37 if (!p)
38 throw std::bad_alloc();
39
40 return p;
41}
42
43void operator delete(void* p)
734f5023 44#if __cplusplus >= 201103L
578f0234
PC
45 noexcept
46#else
47 throw()
48#endif
49{
50 user_delete_called = true;
51
52 std::free(p);
53}
54
55// libstdc++/50594
56void test01()
57{
58 bool test __attribute__((unused)) = true;
59
60 {
61 std::string s = "Hello World.";
62 }
63
64 VERIFY( user_new_called );
65 VERIFY( user_delete_called );
66}
67
68int main()
69{
70 test01();
71 return 0;
72}