Problem with 3.62

Started by Robert Rioja, April 03, 2013, 04:56:49 PM

Previous topic - Next topic

Robert Rioja

I have a program that compiles completely with FF 3.60, but fails with FF 3.62

Attached is a screen shot of the error message.

The part of code that it compalins abpout is the following:

Type CommandType
   OpCode As Byte
   DataLength As Word
   DataBytes(1 To 2000) As Byte
End Type

Union OutputUnion
   OutputString As Asciiz * 257
   OutputBytes(1 To 3000) As Byte
   Command As CommandType
End Union
Global FT_OutputBuffer As OutputUnion

Eddy Van Esch

'command' and 'command$' are PB reserved keywords.
Change 'command' into something else and see if that helps...

Kind regards
Eddy

José Roca

The only reserved word that can't be used in an structure is END. Probably, FF as rearranged the code and placed the CommandType structure after OutputUnion.

Robert Rioja

I had already tried changing Command to something else, but it made no difference.  The problem appears only in FF 3.62, not in FF 3.60.  I thought that Jose might be right, so I looked at CODEGEN_4232X10_DECLARES.INC and he was right.  Although I declared everything in the right order (look at the code segment in my original post), FF 3.62 rearranged them backwards.

So this is an official "bug report".

Thank you,
Robert

Robert Rioja

I have tried other programs and found the same problem.  FF 3.60 compiles with no errors, but FF 3.62 alters the order of declarations so that it cannot compile without errors.  I cannot use 3.62 so I have gone back to 3.60

I hope that Paul can look into this.

Thanks,
Robert

Paul Squires

Hi Robert,

Please re-install 3.62 and then copy the FireFly36.exe (attached) into your install folder to replace the existing exe. This exe keeps UNIONs and TYPEs together so hopefully it will solve the problem you are encountering. Please let me know if it works okay for you. If it does then I will keep the change in the FireFly source code for the next update.
Paul Squires
PlanetSquires Software

Robert Rioja

Paul,

I knew you could do it !!!  Problem solved.

Thank you,
Robert