Der friends,
all the comments about possible workarounds to the bug are indeed valid, but I cannot use them because I have to port a large existing application to gpc while keeping binary compatability with existing files.
This would allow me to have a smoother transition from the current program (Oregon Pascal under SCO) to the new program (gpc under Linux). I mean, I can keep the working program running while I port small parts at a time to implement new features up to when I will finish and I will be able to abandon the old program.
As I said in my second message, the structure I am working with is quite complex and I am afraid to break it :-)
For the moment, the solution I think I will have to follow is to change all the instructions like I said in my second message: As I can assign to the whole record but not to its components, I will copy the whole record to a temporary variable, assign the value to its component and then put all the recors back to its place.
DATA.IDX[H1].KEY:= <array of char>;
becomes
TMP:=DATA.IDX[H1]; TMP.KEY:=<array of char>; DATA.IDX[H1]:=TMP;
Very boring and rather un-elegant but it's acceptable for the compiler :-)
Ciao, thanks to all Francesco Bonomi
Si.lab s.r.l. Via Citille 13 50022 Greve in Chianti FI- Italy
Tel +39 - 055 8544805 Fax +39 - 055 8547418
http//:www.silab.it