operator delete() redefinition errors.

Alexandre Oliva oliva@dcc.unicamp.br
Wed Jun 24 03:01:00 GMT 1998


Wegher, Jeff <JWegher@neonsoft.com> writes:

> Running the 980517 snapshot of egcs (egcs-2.91.29) under
> Solaris 2.51 with no special compile options, I'm seeing some
> weird behavior when redefining operator delete() in my classes.

> class Base { public: virtual ~Base() { }
> void operator delete(void*pMemory) { ::operator delete(pMemory); } };
> class Derived : public Base { public:
> void operator delete(void*pMemory) { Base::operator delete(pMemory); } };
> class VirtualDerived : virtual public Base { public:
> void operator delete(void* pMemory) { Base::operator delete(pMemory); } > };
> int main() { Base* pBase = new Base; Derived* pDerived = new
> Derived; VirtualDerived* pVirtualDerived = new VirtualDerived; }

> no suitable operator delete for `Derived'
> no suitable operator delete for `VirtualDerived'

I couldn't reproduce this problem on Solaris 2.6 with the latest
snapshot of egcs, so I believe it is fixed.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil




More information about the Gcc-bugs mailing list