[cxx-abi-dev] Non-cloned [cd]tors
Mark Mitchell
mark at codesourcery.com
Thu Nov 19 15:02:08 UTC 2009
de Dinechin, Christophe (Integrity VM) wrote:
>> My recollection is that they were all supposed to be emitted in a
>> single COMDAT group, and that if you provided a definition of any one, you had
>> to provide all of them. That way it doesn't matter which of those
>> COMDAT groups you ended up with. The expectation was that they were in
>> fact multiple entry points, and thus the fact that you had to emit all
>> of them together was no big deal.
>
> That's also my recollection, and Dennis confirmed that this is how we did it.
That's my recollection of how EDG did it too, in the sense that I think
there were fields in the IL for COMDAT group, and a COMDAT-capable
back-end could thus emit them in the right group.
For G++, I believe that there was no support for actual COMDAT groups at
the time this got implemented, and so we fell back to weak/linkonce as
the closest equivalent. In other words, I think this is was a
quasi-known bug in the G++ implementation. The decision to make now,
then, is whether to fix G++, or change the ABI to permit the G++
implementation.
--
Mark Mitchell
CodeSourcery
mark at codesourcery.com
(650) 331-3385 x713
More information about the cxx-abi-dev
mailing list