TypeTuple ABI mangling
Iain Buclaw via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jul 27 00:14:23 PDT 2014
On 27 July 2014 00:20, Iain Buclaw <ibuclaw at gdcproject.org> wrote:
> On 26 July 2014 21:06, H. S. Teoh via Digitalmars-d
> <digitalmars-d at puremagic.com> wrote:
>> On Sat, Jul 26, 2014 at 07:44:47PM +0000, Iain Buclaw via Digitalmars-d wrote:
>>> Hi,
>>>
>>> TypeTuples have a special mangling convention in the compiler.
>>>
>>> As per the docs (ref: http://dlang.org/abi.html)
>>>
>>> TypeTuple:
>>> B Number Arguments
>>>
>>>
>>> However after some cursory tests, it seems that the most obvious examples
>>> of, passing a tuple via parameters, returning a tuple, declaring a tuple
>>> variable, etc... all get lowered before mangling.
>>>
>>> So at first glance, this mangling convention is redundant.
>>>
>>> Unless of course someone can post an example which triggers mangling
>>> of TypeTuples...
>> [...]
>>
>> Huh, interesting. I tried various wrapping/unwrapping tricks and passing
>> things via alias parameters, but none of them triggered TypeTuple
>> mangling. Either I missed something obvious, or perhaps this mangling is
>> never actually emitted? Not sure.
>>
>
> I've tried something similar using D1 too, and get the same results.
>
> I'd be willing to do an experiment and remove TypeTuple mangling from
> the language by force and see what ICE's.
I changed Ttuple = 'B' to Ttuple = '@' and waited for assembly errors to happen.
Finally got them when compiling std.outbuffer unittests.
Reducing....
More information about the Digitalmars-d
mailing list