aCC/ROOT operator new conflict

Martin Woudstra (Martin.Woudstra@cern.ch)
Fri, 16 Jan 1998 12:08:46 +0100


Dear rooters,

Compilation with HP/aCC of a C++ file using ROOT routines failes because of a conflict between
two definitions of operator new (on in aCC/new and one in ROOT/TStorage.h):

aCC -g1 +Z +inst_v +inst_implicit_include -c -I/afs/cern.ch/user/w/woudstra/Clib/include/
-I/afs/cern.ch/user/w/woudstra/public/root/include -c read_rasnik.cpp
Error 607: "/opt/aCC/include/new", line 63 # Unexpected exception
specification; "void *operator new(unsigned int,void *)" was previously
declared without an exception specification at
["/afs/cern.ch/user/w/woudstra/public/root/include/TStorage.h", line 57]
inline void* operator new (size_t size, void* ptr) throw() { return ptr;

Since the aCC definition of operator new is in a section between #ifndef __HPACC_NOEH and #endif
I compiled with the option -D__HPACC_NOEH (to disable exception handling),
Then I get even worse problems (and does not seem to be a solution):

aCC -g1 -D__HPACC_NOEH +Z +inst_v +inst_implicit_include -c -I/afs/cern.ch/user/w/woudstra/Clib/include/
-I/afs/cern.ch/user/w/woudstra/public/root/include -c read_rasnik.cpp
Error 328: "/opt/aCC/include/memory", line 464 # Function 'bad_alloc' has not
been defined yet; cannot call.
RWSTD_THROW_NO_MSG(tmp == 0, bad_alloc);

Can anybody please help me here? Thanks!

Regards,

Martin.