Hello.

I have the following program:

program atest;

{$mode objfpc}{$H+}

uses
  Classes, SysUtils, fgl;

type
  TMyClass = class end;
  TControlObjectSpecializedWithAVeryLongNameOfClass = class end;

  {$IFDEF USELONGNAME}
  TMyType = TControlObjectSpecializedWithAVeryLongNameOfClass;  // Error
  {$ELSE}
  TMyType = TMyClass; // OK
  {$ENDIF}

  TSpecControlInfo = specialize TFPGList<TMyType>;

begin
end.


If I build with:
$ fpc -dUSELONGNAME -gs atest.pas

Target OS: Win32 for i386
Compiling atest.pas
Linking atest.exe
atest.pas(36,1) Error: Undefined symbol:
VMT_P$ATEST_TBASECONTROLINFO$TOBJECTINFO$TVERYLONGNAMEOFCLASS_$_TFPGOBJECTLIST$TOBJECTINFO$TVERYLONGNAMEOFCLASS_$__TFPGLISTENUMERATOR$TOBJE
atest.pas(36,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted

If I omit either "-dUSELONGNAME" or "-gs", or use dwarf debugging info
then linking is successful.

Is this some limitation of STABS or a bug?
My platform is Windows XP SP3 i386. FPC 2.7.1 r18142.

--
cobines
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to