[fpc-pascal] FPC trunk internal error 200310221

C Western l at c-m-w.me.uk
Wed Aug 24 13:27:02 CEST 2016


I have recently started seeing FPC internal error 200310221 when 
compiling a changed program with lazarus using the trunk fpc version. If 
I do a build, the problem goes away, only to recur after a random number 
of changes/recompiles. The program I am working on is quite large, so it 
is not obvious how to generate a simple test case for reporting. 
Suggestions?

I managed to catch the error in gdb, but the info is not that helpful:

Free Pascal Compiler version 3.1.1 [2016/08/23] for x86_64
Copyright (c) 1993-2016 by Florian Klaempfl and others
(1002) Target OS: Linux for x86-64
(3104) Compiling pgopher.lpr

Breakpoint 3, RESOLVE (this=...) at symtype.pas:823
823	          internalerror(200310221);
(gdb) where
#0  RESOLVE (this=...) at symtype.pas:823
#1  0x0217000100000008 in ?? ()
#2  0x00007fff9e000000 in ?? ()
#3  0x00007ffff7754f00 in ?? ()
#4  0x00007fffe391fac0 in ?? ()
#5  0x0000000000000000 in ?? ()
(gdb) info locals
result = 0x0
RESOLVE = 0x0
RESULT = 0x0
PM = 0x7fffe6e2f2c0
TYP = 228
IDX = 929
I = 140737035875040
LEN = 8
DATA = {1, 0, 23, 2, 0, 0, 0, 158, 255, 127, 0, 0, 0, 79, 117, 247, 255, 
127, 0, 0, 192, 250, 145, 227, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   160, 0, 0, 0, 0, 0, 0, 0, 232, 227, 211, 226, 255, 127, 0, 0, 121, 
135, 65, 0, 0, 0, 0, 0, 224, 55, 255, 255, 255, 127, 0, 0, 128, 0, 0, 0, 
0, 0,
   0, 0, 232, 227, 211, 226, 255, 127, 0, 0, 216, 25, 113, 231, 255, 
127, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 254, 126, 65, 0, 0, 0, 0, 0, 224, 
26, 0, 0,
   0, 0, 0, 0, 236, 140, 65, 0, 0, 0, 0, 0, 1, 180, 206, 226, 255, 127, 
0, 0, 249, 137, 65, 0, 0, 0, 0, 0, 48, 79, 117, 247, 255, 127, 0, 0, 64, 
82,
   175, 240, 255, 127, 0, 0, 86, 3, 0, 0, 0, 0, 0, 0, 216, 33, 0, 0, 0, 
0, 0, 0, 104, 36, 113, 247, 255, 127, 0, 0, 129, 141, 65, 0, 0, 0, 0, 0, 
86,
   3, 0, 0, 0, 0, 0, 0, 59, 4, 0, 0...}
(gdb) list
818	        if dataidx<0 then
819	          internalerror(200306067);
820	        { read data }
821	        current_module.derefdata.seek(dataidx);
822	        if current_module.derefdata.read(len,1)<>1 then
823	          internalerror(200310221);
824	        if len>0 then
825	          begin
826	            if current_module.derefdata.read(data,len)<>len then
827	              internalerror(200310222);

Colin



More information about the fpc-pascal mailing list