[fpc-devel]Internal error 9999 (FPC 1.9.0)
    Pedro Lopez-Cabanillas 
    plcl at telefonica.net
       
    Sun Nov  9 00:36:41 CET 2003
    
    
  
Hi all,
The following test program doesn't compile under FPC 1.9.0, but it does and 
works under Kylix 3. I didn't try other Delphi incarnations.
The compiler says:
$ fpc test3
Hint: End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 1.9.0 [2003/11/05] for i386
Copyright (c) 1993-2002 by Florian Klaempfl
Target OS: Linux for i386
Compiling test3.pp
Panic : Internal compiler error, exiting.
test3.pp(34,11) Fatal: Internal error 9999
The problem is triggered by the line containing this cast: 
AnsiString(MsgBuff), where MsgBuf has been declared as 
type
  TByteArray = Array of Byte;
var
  MsgBuff: TByteArray;
I know that casting a dynamic array to AnsiString is not a very good 
programming practice, and it is only possible because Borland made his 
implementation of AnsiString and Dynamic arrays compatible. This is not true  
with FPC, i guess.
$ cat test3.pp
program test3;
{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
type
  TByteArray = Array of Byte;
var
  MsgBuff: TByteArray;
  MsgIndex: Integer;
  procedure MsgInit;
  begin
    MsgIndex := 0;
    MsgBuff := nil;
  end;
  procedure MsgAdd(b: Byte);
  begin
    if (MsgIndex >= Length(MsgBuff)) then
       SetLength(MsgBuff, Length(MsgBuff) + 128);
    MsgBuff[MsgIndex] := b;
    Inc(MsgIndex);
  end;
var
  b: Byte;
begin
  MsgInit;
  for b:=65 to 122 do MsgAdd(b);
  WriteLn(AnsiString(MsgBuff));
end.
Regards,
Pedro
-- 
ALSA Library Bindings for Pascal
http://alsapas.alturl.com
    
    
More information about the fpc-devel
mailing list