[Vm-dev] CCodeGeneration bug or gcc compiler bug?
David T. Lewis
lewis at mail.msen.com
Sat Apr 6 13:42:33 UTC 2013
On Fri, Apr 05, 2013 at 10:52:40PM +0200, Nicolas Cellier wrote:
>
> THE QUESTION:
>
> I just don't understand what is incorrect in the (t)?a,b:c,d; construct...
> Could it be that it is interpreted:
>
> ((t)?a,b:c),d;
>
> Ah if so, maybe that would explain the warning about oop1 being potentially
> used before assigned! (a bulb just enlighten)
>
> In this case we have a bug in the generator (probably a known one since we
> rearely ever use x := test ifTrue: [] ifFalse: [] in Slang)...
>
> Nicolas
To answer your original question - this is the result of something missing
in the code generator. It means that the construct was not found in the C
translation dictionary, so the translator assumed that you were referring
to a function call and tried to translate in that way.
The code generation is done here:
CCodeGenerator>>generateIfTrueIfFalseAsArgument:on:indent:
CCodeGenerator>>generateIfTrueIfFalse:on:indent:
CCodeGenerator>>initializeCTranslationDictionary
Dave
More information about the Vm-dev
mailing list