Re: [cxx-abi-dev] Non-cloned [cd]tors
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cxx-abi-dev] Non-cloned [cd]tors
- To: "de Dinechin, Christophe (Integrity VM)" <christophe.de-dinechin@xxxxxx>
- Subject: Re: [cxx-abi-dev] Non-cloned [cd]tors
- From: Mark Mitchell <mark@xxxxxxxxxxxxxxxx>
- Date: Thu, 19 Nov 2009 07:02:08 -0800
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@xxxxxxxxxxxxxxxx
(650) 331-3385 x713