[Gc] SGI C++ compiler

Boehm, Hans hans_boehm at hp.com
Wed Jan 21 13:44:14 PST 2004


I don't think placement delete is used internally.  It's defined to be
a noop anyway.

Based on a quick look at the C++ standard, I'm not sure that the presence
of placement delete matters at all.  I think there is no way to invoke it
unless a constructor throws an exception and it is called automatically
to undo a placement new.  But in the absence of a placement delete operator,
the default action appears to be to do nothing, which is precisely what
placement delete does.

I would just ifdef it out for the SGI compiler.  If you send me a patch
with the right macro tests, I'll put it into the standard distribution.
(I'm hesitant to take it out unconditionally.  My experience is that
compilers are very inconsistent in this area, and any perturbation is likely
to break something.)

Hans

> -----Original Message-----
> From: gc-bounces at napali.hpl.hp.com
> [mailto:gc-bounces at napali.hpl.hp.com]On Behalf Of Simon Gornall
> Sent: Wednesday, January 21, 2004 12:43 PM
> To: GC mailing list
> Subject: Re: [Gc] SGI C++ compiler
> 
> 
> Boehm, Hans wrote:
> 
> >It would be useful to see the error message.
> >  
> >
> It's in the other post I made, but here for completeness :-)
> 
> CC -DPACKAGE_NAME=\"gc\" -DPACKAGE_TARNAME=\"gc\" 
> -DPACKAGE_VERSION=\"6.2\" "-DPACKAGE_STRING=\"gc 6.2\"" 
> -DPACKAGE_BUGREPORT=\"Hans.Boehm at hp.com\" -DGC_VERSION_MAJOR=6 
> -DGC_VERSION_MINOR=2 -DPACKAGE=\"gc\" -DVERSION=\"6.2\" 
> -DNO_EXECUTE_PERMISSION=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSILENT=1 
> -DNO_SIGNALS=1 -DNO_EXECUTE_PERMISSION=1 -DALL_INTERIOR_POINTERS=1 
> -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1 -DATOMIC_UNCOLLECTABLE=1 -I. 
> -I. -I./include -g -c gc_cpp.cc 
> -Wp,-MDupdate,.deps/gc_cpp.TPlo  -DPIC 
> -o .libs/gc_cpp.lo
> cc-3333 CC: WARNING File = ./include/gc_cpp.h, Line = 169
>  Support for placement delete is disabled.
> 
>        inline void operator delete( void*, void* );
>                    ^
> 
> cc-1401 CC: WARNING File = ./include/gc_cpp.h, Line = 178
>  A qualified name is not allowed in a member declaration.
> 
>        inline void gc::operator delete[]( void*, void* );
>                    ^
> 
> cc-3333 CC: WARNING File = ./include/gc_cpp.h, Line = 178
>  Support for placement delete is disabled.
> 
>        inline void gc::operator delete[]( void*, void* );
>                        ^
> 
> >I think that most of the code dealing with placement delete 
> is already guarded
> >by a #if to exclude it for the Borland compiler.  Perhaps it 
> is appropriate
> >to similarly leave it out for the appropriate versions of 
> the SGI compiler?
> >  
> >
> Ah, so it's not too important then ? I had thought it was a 
> fatal issue 
> - that no memory would be reclaimed.
> 
> ATB,
>     Simon
> 
> 
> _______________________________________________
> Gc mailing list
> Gc at linux.hpl.hp.com
> http://linux.hpl.hp.com/cgi-bin/mailman/listinfo/gc
> 


More information about the Gc mailing list