According to myself (Peter Gerwinski):
I just succeeded to reproduce the bug under Linux DOSEMU.
That was bogus. :-( What I did was to move `gpc1' around after compiling, but my `gpc1.exe' was still gpc-970714. With gpc-970721 I still cannot reproduce the bug. :-( :-(
I am uploading my version of `gpc1.exe' (which happily compiled your "foo.pas" sample program) to
ftp://agnes.dida.physik.uni-essen.de/home/peter/gpc1.exe.gz
If the error still occurs ... well, what can we do then? Then we are in trouble:
To produce the error, in line 134 of `gpi-hash.c',
for (l = hash_table[hi]; l && l->node; l = l->next)
`l' must be nonzero, but point to some nonsense. How do entries in `hash_table' get their values? At the beginning of each storing/loading of a GPI file, `hash_table' is `bzero'ed now, and the only other access to `hash_table' is in `set_uid()' (line 173-177) - where I don't see any error. So the only remaining origin of this error I can think of is if some other part of GPC destroys the contents of `hash_table' ... :-(
Peter
Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201] maintainer GNU Pascal [970714] - http://home.pages.de/~gnu-pascal/ [970125]