Account for prologue spills in reg_pressure scheduling
[official-gcc.git] / libstdc++-v3 / testsuite / 18_support / 50594.cc
blob27538af76ad2a0e7408ab323c1037f523d89eb09
1 // { dg-options "-fwhole-program" }
2 // { dg-additional-options "-static-libstdc++" { target *-*-mingw* } }
4 // Copyright (C) 2011-2014 Free Software Foundation, Inc.
5 //
6 // This file is part of the GNU ISO C++ Library. This library is free
7 // software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the
9 // Free Software Foundation; either version 3, or (at your option)
10 // any later version.
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License along
18 // with this library; see the file COPYING3. If not see
19 // <http://www.gnu.org/licenses/>.
21 #include <new>
22 #include <string>
23 #include <cstdlib>
24 #include <testsuite_hooks.h>
26 bool user_new_called;
27 bool user_delete_called;
29 void* operator new(std::size_t n)
30 #if __cplusplus < 201103L
31 throw(std::bad_alloc)
32 #endif
34 user_new_called = true;
36 void* p = std::malloc(n);
38 if (!p)
39 throw std::bad_alloc();
41 return p;
44 void operator delete(void* p)
45 #if __cplusplus >= 201103L
46 noexcept
47 #else
48 throw()
49 #endif
51 user_delete_called = true;
53 std::free(p);
56 // libstdc++/50594
57 void test01()
59 bool test __attribute__((unused)) = true;
62 std::string s = "Hello World.";
65 VERIFY( user_new_called );
66 VERIFY( user_delete_called );
69 int main()
71 test01();
72 return 0;