diff --git a/src/ca/CASG.cpp b/src/ca/CASG.cpp index 8d2bf0852..8dd808c21 100644 --- a/src/ca/CASG.cpp +++ b/src/ca/CASG.cpp @@ -278,6 +278,13 @@ void CASG::exception ( int status, const char *pContext, lineNo, chan, type, count, op ); } +void * CASG::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void CASG::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/bhe.cpp b/src/ca/bhe.cpp index a87c89d0b..539ee5484 100644 --- a/src/ca/bhe.cpp +++ b/src/ca/bhe.cpp @@ -246,6 +246,13 @@ void bhe::unregisterIIU ( tcpiiu & iiu ) this->averagePeriod = - DBL_MAX; } +void * bhe::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void bhe::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/getCallback.cpp b/src/ca/getCallback.cpp index 791eb19c6..120652fe9 100644 --- a/src/ca/getCallback.cpp +++ b/src/ca/getCallback.cpp @@ -71,6 +71,13 @@ void getCallback::exception ( this->chan.getClientCtx().destroyGetCallback ( *this ); } +void * getCallback::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void getCallback::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/getCopy.cpp b/src/ca/getCopy.cpp index 855baaadc..833f51b8a 100644 --- a/src/ca/getCopy.cpp +++ b/src/ca/getCopy.cpp @@ -88,6 +88,13 @@ void getCopy::show ( unsigned level ) const } } +void * getCopy::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void getCopy::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/msgForMultiplyDefinedPV.cpp b/src/ca/msgForMultiplyDefinedPV.cpp index e7bebed1b..dd15fb3c5 100644 --- a/src/ca/msgForMultiplyDefinedPV.cpp +++ b/src/ca/msgForMultiplyDefinedPV.cpp @@ -68,6 +68,13 @@ void msgForMultiplyDefinedPV::operator delete ( void *pCadaver, } #endif +void * msgForMultiplyDefinedPV::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void msgForMultiplyDefinedPV::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/nciu.cpp b/src/ca/nciu.cpp index 9d5c7709b..aae0fb0dc 100644 --- a/src/ca/nciu.cpp +++ b/src/ca/nciu.cpp @@ -84,6 +84,13 @@ void nciu::destroy () this->cacCtx.destroyChannel ( *this ); } +void * nciu::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void nciu::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/netReadNotifyIO.cpp b/src/ca/netReadNotifyIO.cpp index ceda8cea6..fe9e1ae06 100644 --- a/src/ca/netReadNotifyIO.cpp +++ b/src/ca/netReadNotifyIO.cpp @@ -80,6 +80,13 @@ nciu & netReadNotifyIO::channel () const return this->chan; } +void * netReadNotifyIO::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void netReadNotifyIO::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/netSubscription.cpp b/src/ca/netSubscription.cpp index b617b1669..866d6e136 100644 --- a/src/ca/netSubscription.cpp +++ b/src/ca/netSubscription.cpp @@ -93,6 +93,13 @@ nciu & netSubscription::channel () const return this->chan; } +void * netSubscription::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void netSubscription::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/netWriteNotifyIO.cpp b/src/ca/netWriteNotifyIO.cpp index 53744eebd..da939fb8c 100644 --- a/src/ca/netWriteNotifyIO.cpp +++ b/src/ca/netWriteNotifyIO.cpp @@ -81,6 +81,13 @@ nciu & netWriteNotifyIO::channel () const return this->chan; } +void * netWriteNotifyIO::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void netWriteNotifyIO::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/oldChannelNotify.cpp b/src/ca/oldChannelNotify.cpp index f4d69d049..b6172929f 100644 --- a/src/ca/oldChannelNotify.cpp +++ b/src/ca/oldChannelNotify.cpp @@ -183,6 +183,13 @@ void oldChannelNotify::writeException ( int status, const char *pContext, __FILE__, __LINE__, *this, type, count, CA_OP_PUT ); } +void * oldChannelNotify::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void oldChannelNotify::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/putCallback.cpp b/src/ca/putCallback.cpp index 0c755c269..49dd0e080 100644 --- a/src/ca/putCallback.cpp +++ b/src/ca/putCallback.cpp @@ -71,6 +71,13 @@ void putCallback::exception ( this->chan.getClientCtx().destroyPutCallback ( *this ); } +void * putCallback::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void putCallback::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/repeater.cpp b/src/ca/repeater.cpp index cc5e1d1a7..87327796c 100644 --- a/src/ca/repeater.cpp +++ b/src/ca/repeater.cpp @@ -249,7 +249,14 @@ repeaterClient::~repeaterClient () debugPrintf ( ( "Deleted client %u\n", epicsNTOH16 ( this->from.ia.sin_port ) ) ); } -inline void repeaterClient::operator delete ( void * ) +void * repeaterClient::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + +void repeaterClient::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if // placement operator delete is defined? I smell a ms rat @@ -260,14 +267,14 @@ inline void repeaterClient::operator delete ( void * ) __FILE__, __LINE__ ); } -inline void * repeaterClient::operator new ( size_t size, +void * repeaterClient::operator new ( size_t size, tsFreeList < repeaterClient, 0x20 > & freeList ) { return freeList.allocate ( size ); } #ifdef CXX_PLACEMENT_DELETE -inline void repeaterClient::operator delete ( void *pCadaver, +void repeaterClient::operator delete ( void *pCadaver, tsFreeList < repeaterClient, 0x20 > & freeList ) epicsThrows(()) { freeList.release ( pCadaver ); diff --git a/src/ca/syncGroupReadNotify.cpp b/src/ca/syncGroupReadNotify.cpp index bac749161..7984db0f7 100644 --- a/src/ca/syncGroupReadNotify.cpp +++ b/src/ca/syncGroupReadNotify.cpp @@ -92,6 +92,13 @@ void syncGroupReadNotify::show ( unsigned level ) const } } +void * syncGroupReadNotify::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void syncGroupReadNotify::operator delete ( void * p ) { // Visual C++ .net appears to require operator delete if diff --git a/src/ca/syncGroupWriteNotify.cpp b/src/ca/syncGroupWriteNotify.cpp index 2bad9b992..0e8166c34 100644 --- a/src/ca/syncGroupWriteNotify.cpp +++ b/src/ca/syncGroupWriteNotify.cpp @@ -86,6 +86,13 @@ void syncGroupWriteNotify::show ( unsigned level ) const } } +void * syncGroupWriteNotify::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void syncGroupWriteNotify::operator delete ( void * p ) { // Visual C++ .net appears to require operator delete if diff --git a/src/cas/io/bsdSocket/ipIgnoreEntry.cpp b/src/cas/io/bsdSocket/ipIgnoreEntry.cpp index 4acc03863..080be525e 100644 --- a/src/cas/io/bsdSocket/ipIgnoreEntry.cpp +++ b/src/cas/io/bsdSocket/ipIgnoreEntry.cpp @@ -63,6 +63,13 @@ void ipIgnoreEntry::operator delete ( void * pCadaver, } #endif +void * ipIgnoreEntry::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void ipIgnoreEntry::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if diff --git a/src/libCom/timer/timer.cpp b/src/libCom/timer/timer.cpp index 1dd874f1c..9cf70af0b 100644 --- a/src/libCom/timer/timer.cpp +++ b/src/libCom/timer/timer.cpp @@ -223,6 +223,13 @@ void timer::show ( unsigned int level ) const } } +void * timer::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void timer::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if @@ -234,6 +241,13 @@ void timer::operator delete ( void * ) __FILE__, __LINE__ ); } +void * epicsTimerForC::operator new ( size_t ) +{ + // The HPUX compiler seems to require this even though no code + // calls it directly + throw std::logic_error ( "why is the compiler calling private operator new" ); +} + void epicsTimerForC::operator delete ( void * ) { // Visual C++ .net appears to require operator delete if