(Token t) is not callable using argument types (Token): GDC bug or not?

Matthias Klumpp via D.gnu d.gnu at puremagic.com
Sun Jan 29 12:05:21 PST 2017


On Sunday, 29 January 2017 at 18:13:25 UTC, Iain Buclaw wrote:
> On 29 January 2017 at 19:12, Iain Buclaw 
> <ibuclaw at gdcproject.org> wrote:
>> On 29 January 2017 at 17:59, Matthias Klumpp via D.gnu 
>> <d.gnu at puremagic.com> wrote:
>>> Hi!
>>> When compiling Dustmite on Debian with GDC, the build runs 
>>> into the
>>> following error on i386:
>>> ```
>>> splitter.d:875:15: error: function
>>> splitter.DSplitter.postProcessBlockStatements.consume (Token 
>>> t) is not
>>> callable using argument types (Token)
>>>     if (consume(tokenLookup["if"]) || 
>>> consume(tokenLookup["static if"]))
>>>                ^
>>> debian/rules:9: recipe for target 'override_dh_auto_build' 
>>> failed
>>> ```
>>> This only happens on i386 and other 32bit architectures, 
>>> amd64 and even x32
>>> are fine.
>>>
>>> Looking at the source code at
>>> https://github.com/CyberShadow/DustMite/blob/master/splitter.d#L875 , I
>>> can't find any obvious programming issue, so I currently 
>>> assume that this is
>>> a GDC bug.
>>> Or am I missing something?
>>> In the former case, I'd file a bug against GDC.
>>> Cheers,
>>>     Matthias
>>>
>>
>> Whatever it is, it would be frontend-related (the error is 
>> semantic related, not codegen).  I don't have any 32bit boxes 
>> to try out, unless I am able to reproduce this in a container 
>> or debootstrap-chroot.
>
> And I can't reproduce using -m32 with current git head either, 
> nor the gdc-5 package that I have readily available on my 
> laptop.

Crazy... It's definitely not a frontend issue, since this 
compiles fine with DMD apparently.... I need to attempt a build 
of the package in a local 32bit chroot and see if that reproduces 
the issue.
Alternatively I could also compile with LDC, but I deliberately 
picked GDC here to have Dustmite available on more architectures.
Btw, while Debian has GDC on a lot of architectures, it seems to 
only be working on very few.


More information about the D.gnu mailing list