Martin Liddle wrote:
Having got 20011123 to compile, I found three differences in the compiler from our previous gpc version 20010604. It objected in two different units to code using a GOTO with the error message: " Label '1' used before containing binding contour'.
The code looks correct and compiles and executes properly with the previous version. Is this a known problem as it looks as though it should be fairly easy to produce a test case if required.
So why don't you do this? How can I tell if it's a known problem, or a problem at all, if I don't even know when it happens? Maybe there's a bug in your code that previous GPC versions didn't notice, maybe it's a GPC bug, who knows?
Secondly it picked up a number of occurrences of incorrect code of the form St[9]:=Chr(65)+Random(26) that had been accepted by the previous version; so that is progress.
At least. ;-)
My main problem is that the packing of records appears to have changed. For instance a record of the form
TCompR=Packed Record AName:String(49); AClass:1..40; Awel:Set of 1..120; RLate,RTime:Integer; End;
has the same size as previously (as reported by sizeof) but when using this record to read from a file written by code compiled with our previous version of the compiler gives nonsense values for AClass and Awel. I can work around this particular problem by changing the definition of AClass to Byte but sadly our code has a great many packed records (because it was originally written a long time ago when storage was more precious) but making all the files backwards compatible is not going to be trivial. So two questions: Is there any switch that will restore the previous packing behaviour?
Assuming there is not, could someone explain in more detail what has changed and what are the rules governing packing so that I can work out how to redefine each of the affected records.
I've changed a number of things WRT sets. Maybe one of them is responsible for what you observe, maybe not ...
If you want more help on this, please provide specific information such as a test program, a test file that the program reads, a description of the values expected and observed, and all the usual stuff.
Please remember that we're doing this for free, and I don't want to waste my time guessing what you did.
Alternatively, we can offer you commercial support that allows us to devote more time to solving your particular problem. If you are interested, please contact info@g-n-u.de.
Frank