View Issue Details

IDProjectCategoryView StatusLast Update
0037241FPCCompilerpublic2020-07-03 11:25
ReporterErich Eckner Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86_64OScrux linux 
Product Version3.2.0 
Summary0037241: Internal error 200510032 for inline methods that have not been inlined
DescriptionWhen compiling the test program (this is a reduced program from my original program - maybe, there is a simpler version to trigger the error, but I could not find one in a greedy way) in objfpc mode, internal error 200510032 is raised. This can be fixed by removing "inline" from any of the mentioned methods. Strangely, when making "count" non-inline or when changing the output type of minMaxY from tPoint to integer raises some strange linker error instead (so I assume, the internal compiler error is also gone, but I cannot be sure about that).

fpc is a custom build, but it's pretty straight-forward (it uses mainly the build instructions from arch linux):
https://crux.eckner.net/fpc/Pkgfile

P.S.: there is no version 3.2.0 in the drop-down for the "product version"
Steps To Reproducecat >test.pas <<EOF
program test;

{\$mode objfpc}{\$H+}

uses
  Classes, SysUtils;

type
  tMessPunkt = class
  private
    function rMW: integer; inline;
  public
    property mW: integer
      read rMW;
  end;

  tMessPunkteListe = class
  private
    function rItem(i: longint): tMessPunkt; inline;
  public
    function count: longint; inline;
    property items[i: longint]: tMessPunkt
      read rItem; default;
    function minMaxY: tPoint;
  end;

function tMessPunkt.rMW: integer;
begin
  result:=0;
end;

function tMessPunkteListe.rItem(i: longint): tMessPunkt;
begin
  if i>=count then
    raise exception.create('i too large');
  result:=nil;
end;

function tMessPunkteListe.count: longint;
begin
  result:=0;
end;

function tMessPunkteListe.minMaxY: tPoint;
begin
  result.x:=items[0].mW;
  result.y:=items[0].mW;
end;

begin
end.
EOF

fpc -MObjFPC test.pas
Additional InformationThis seems to have worked with fpc 3.0.4 before, but I am not 100% sure about that.
TagsNo tags attached.
Fixed in Revision
FPCOldBugId
FPCTarget-
Attached Files

Activities

Marco van de Voort

2020-06-23 16:37

manager   ~0123532

(3.2.0 had status not released. Fixed I hope)

delfion

2020-06-23 18:22

reporter   ~0123535

$fpc -MObjFPC test.pas
Free Pascal Compiler version 3.3.1 [2020/06/22] for x86_64
Copyright (c) 1993-2020 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling test.pas
test.pas(34,9) Note: Call to subroutine "function tMessPunkteListe.count:LongInt;" marked as inline is not inlined
Linking test
51 lines compiled, 0.4 sec
1 note(s) issued

Issue History

Date Modified Username Field Change
2020-06-23 16:31 Erich Eckner New Issue
2020-06-23 16:36 Marco van de Voort Product Version => 3.2.0
2020-06-23 16:36 Marco van de Voort FPCTarget => -
2020-06-23 16:37 Marco van de Voort Note Added: 0123532
2020-06-23 18:22 delfion Note Added: 0123535
2020-07-03 11:25 Erich Eckner Status new => closed
2020-07-03 11:25 Erich Eckner Resolution open => fixed