OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [testsuite/] [18_support/] [50594.cc] - Blame information for rev 747

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 742 jeremybenn
// { dg-options "-fwhole-program" }
2
 
3
// Copyright (C) 2011 Free Software Foundation
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
 
25
bool user_new_called;
26
bool user_delete_called;
27
 
28
void* operator new(std::size_t n)
29
#ifndef __GXX_EXPERIMENTAL_CXX0X__
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
 
43
void operator delete(void* p)
44
#ifdef __GXX_EXPERIMENTAL_CXX0X__
45
  noexcept
46
#else
47
  throw()
48
#endif
49
{
50
  user_delete_called = true;
51
 
52
  std::free(p);
53
}
54
 
55
// libstdc++/50594
56
void 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
 
68
int main()
69
{
70
  test01();
71
  return 0;
72
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.