[Bug c++/31289] gcc412 elides code in operator delete() override method

2007-03-20 Thread jima at cadence dot com
--- Comment #3 from jima at cadence dot com 2007-03-21 01:32 --- Can you point me to a description of the C++ aliasing rules? Is the memcpy() workaround specific to GCC, or is memcpy part of the standard with special rules regarding aliasing? (I ask because our code base has to work

[Bug c++/31289] gcc412 elides code in operator delete() override method

2007-03-20 Thread jima at cadence dot com
--- Comment #5 from jima at cadence dot com 2007-03-21 02:31 --- (In reply to comment #4) > (In reply to comment #3) >... Why do you think 1 or 2 more > instructions will be a hit, most of the problems you are going to hit into now > is cache issues anyways unless you do a b

[Bug c++/31289] gcc412 elides code in operator delete() override method

2007-03-21 Thread jima at cadence dot com
--- Comment #7 from jima at cadence dot com 2007-03-21 16:13 --- (In reply to comment #6) > ... the proper way is to start a new object lifetime using placement new. Are you referring only to internal operations in MyHeap::Malloc (in the demo program), or do you mean that the over

[Bug c++/31289] gcc412 elides code in operator delete() override method

2007-03-21 Thread jima at cadence dot com
--- Comment #8 from jima at cadence dot com 2007-03-21 20:58 --- I tried using placement-new and explicit destructor calls to delineate the lifetime of the allocator's internal class objects explicitly, such that their lifetimes do not overlap with any references to the same st