[fpc-pascal] Generics problem/question

Honza befelemepeseveze at gmail.com
Thu Jan 14 17:37:35 CET 2010

Hi all.

At Mantis Florian already explained, why it is not possible to provide
more information in the error message. Still he meanwhile managed to
make it better. I got some time to return to this and now I'm here:

17:11 myname at tux64:~/fpc/bugreports/20100105$ cat project1.pas
program project1;

{$mode objfpc}{$H+}


  TPar = record
    I: Integer;

operator = (A, B: TPar): Boolean;
	Result := A.I = B.I;

  TSpec = specialize TFPGList<TPar>;


17:22 myname at tux64:~/fpc/bugreports/20100105$ fpc project1.pas
Free Pascal Compiler version 2.5.1 [2010/01/14] for x86_64
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling project1.pas
Error: Operator is not overloaded: "<record type>" = "<record type>"
project1.pas(24) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /home/myname/lib/fpc/2.5.1/ppcx64 returned an error exitcode
(normal if you did not specify a source file to be compiled)
17:22 myname at tux64:~/fpc/bugreports/20100105$ svn info ~/svn/fpc/trunk
Path: /home/myname/svn/fpc/trunk
URL: http://svn2.freepascal.org/svn/fpc/trunk
Repository Root: http://svn2.freepascal.org/svn/fpc
Repository UUID: 3ad0048d-3df7-0310-abae-a5850022a9f2
Revision: 14633
Node Kind: directory
Schedule: normal
Last Changed Author: paul
Last Changed Rev: 14633
Last Changed Date: 2010-01-14 09:41:27 +0100 (Čt, 14 led 2010)

17:23 myname at tux64:~/fpc/bugreports/20100105$

I'm now able to track the source of the error message to line 715:50
of rtl/objpas/fgl.pp:

711  function TFPGList.IndexOf(const Item: T): Integer;
712  begin
713    Result := 0;
714    {$info TODO: fix inlining to work! InternalItems[Result]^}
715    while (Result < FCount) and (PT(FList)[Result] <> Item) do
716      Inc(Result);
717    if Result = FCount then
718      Result := -1;
719  end;

Still I'm stuck and don't know how to use items like TPar in the
specialization of TFPGList - or if it is a compiler bug.

Thanks in advance for anyone's help/explanation/hint.


Topic/previous messages context:

Mantis issue:

More information about the fpc-pascal mailing list