head	1.4;
access;
symbols
	gcc-2_8_1-990325:1.4
	gcc-2_8_1-990319:1.4
	gcc-2_8_1-990302:1.4
	gcc_2_8_1-990302:1.4
	gcc_2_8_1-990222:1.4
	gcc-2_8_1-990109:1.4
	gcc-2_8_1-981210:1.4
	gcc-2_8_1-981208:1.4
	gcc-2_8_1-980929:1.4
	gcc_2_8_1-980929:1.4
	gcc-2_8_1-980928:1.4
	gcc-2_8_1-980813:1.4
	gcc-2_8_1-980811:1.4
	gcc-2_8_1-980718:1.4
	gcc-2_8_1-980705:1.4
	gcc-2_8_1-980627:1.4
	gcc-2_8_1-980609:1.4
	gcc-2_8_1-980608:1.4
	gcc-2_8_1-980529:1.4
	gcc-2_8_1-980525:1.4
	gcc-2_8_1-980513:1.4
	gcc-2_8_1-980502:1.4
	gcc-2_8_1-980426:1.4
	gcc-2_8_1-980419:1.4
	gcc-2_8_1-980413:1.4
	gcc-2_8_1-980412:1.4
	gcc-2_8_1-980407:1.4
	gcc-2_8_1-980401:1.4
	gcc_2_8_1-980315:1.4
	gcc-2_8_1-RELEASE:1.4;
locks; strict;
comment	@# @;


1.4
date	97.11.18.08.19.18;	author merrill;	state Exp;
branches;
next	1.3;

1.3
date	97.11.08.23.30.08;	author merrill;	state Exp;
branches;
next	1.2;

1.2
date	97.02.04.03.09.59;	author mrs;	state Exp;
branches;
next	1.1;

1.1
date	96.09.30.21.32.20;	author mrs;	state Exp;
branches;
next	;


desc
@Bring over from libstdc++
@


1.4
log
@revert accidental checkin
@
text
@// The -*- C++ -*- dynamic memory management header.
// Copyright (C) 1994, 1996 Free Software Foundation

#ifndef __NEW__
#define __NEW__

#pragma interface "new"
#include <stddef.h>
#include <exception>

extern "C++" {

#if 0
namespace std {
#endif

  class bad_alloc : public exception {
  public:
    virtual const char* what() const throw() { return "bad_alloc"; }
  };

  struct nothrow_t {};
  extern const nothrow_t nothrow;
  typedef void (*new_handler)();
  extern "C" new_handler set_new_handler (new_handler);

#if 0
} // namespace std
#endif

// G++ implementation internals
extern new_handler __new_handler;
extern "C" void __default_new_handler (void);

// replaceable signatures
void *operator new (size_t);
void *operator new (size_t, const nothrow_t&) throw();
void *operator new[] (size_t);
void *operator new[] (size_t, const nothrow_t&) throw();
void operator delete (void *) throw();
void operator delete[] (void *) throw();

// default placement versions of operator new
inline void *operator new(size_t, void *place) throw() { return place; }
inline void *operator new[](size_t, void *place) throw() { return place; }
} // extern "C++"

#endif
@


1.3
log
@merge
@
text
@d2 1
a2 1
// Copyright (C) 1994, 1996, 1997 Free Software Foundation
a8 3

#ifndef __EMBEDDED_CXX__
// Exception Handling is forbidden in Embedded C++.  */
a9 1
#endif
a16 1
#ifndef __EMBEDDED_CXX__
a23 2
#endif

d37 1
a38 2
#ifndef __EMBEDDED_CXX__
void *operator new (size_t, const nothrow_t&) throw();
a41 1
#endif
a42 1
#ifndef __EMBEDDED_CXX__
a45 5
#else
// default placement versions of operator new
inline void *operator new(size_t, void *place) { return place; }
inline void *operator new[](size_t, void *place) { return place; }
#endif
@


1.2
log
@90th Cygnus<->FSF quick merge
@
text
@d2 1
a2 1
// Copyright (C) 1994, 1996 Free Software Foundation
d9 3
d13 1
d21 1
d29 2
d44 2
a46 1
void *operator new[] (size_t);
d50 1
d52 1
d56 5
@


1.1
log
@89th Cygnus<->FSF quick merge
@
text
@d9 1
d17 9
a25 2
typedef void (*new_handler)();
extern "C" new_handler set_new_handler (new_handler);
d37 1
d39 3
a41 2
void operator delete (void *);
void operator delete[] (void *);
d44 2
a45 2
inline void *operator new(size_t, void *place) { return place; }
inline void *operator new[](size_t, void *place) { return place; }
@
