diff --git a/.gitattributes b/.gitattributes index 0ed3a5db8d..f2f976ccfe 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10102,6 +10102,7 @@ tests/webtbs/tw14958b.pp svneol=native#text/plain tests/webtbs/tw1501.pp svneol=native#text/plain tests/webtbs/tw15088.pp svneol=native#text/plain tests/webtbs/tw15169.pp svneol=native#text/plain +tests/webtbs/tw15207.pp svneol=native#text/plain tests/webtbs/tw1532.pp svneol=native#text/plain tests/webtbs/tw1539.pp svneol=native#text/plain tests/webtbs/tw1567.pp svneol=native#text/plain diff --git a/compiler/nld.pas b/compiler/nld.pas index fef4f901a8..cc1b742189 100644 --- a/compiler/nld.pas +++ b/compiler/nld.pas @@ -1104,6 +1104,7 @@ implementation inherited ppuload(t,ppufile); ppufile.getderef(rttidefderef); rttitype:=trttitype(ppufile.getbyte); + rttidatatype:=trttidatatype(ppufile.getbyte); end; @@ -1112,6 +1113,7 @@ implementation inherited ppuwrite(ppufile); ppufile.putderef(rttidefderef); ppufile.putbyte(byte(rttitype)); + ppufile.putbyte(byte(rttidatatype)); end; @@ -1136,6 +1138,7 @@ implementation n:=trttinode(inherited dogetcopy); n.rttidef:=rttidef; n.rttitype:=rttitype; + n.rttidatatype:=rttidatatype; result:=n; end; diff --git a/compiler/ppu.pas b/compiler/ppu.pas index 3897effddd..e1ac0f7439 100644 --- a/compiler/ppu.pas +++ b/compiler/ppu.pas @@ -43,7 +43,7 @@ type {$endif Test_Double_checksum} const - CurrentPPUVersion = 105; + CurrentPPUVersion = 106; { buffer sizes } maxentrysize = 1024; diff --git a/tests/webtbs/tw15207.pp b/tests/webtbs/tw15207.pp new file mode 100644 index 0000000000..855a26881f --- /dev/null +++ b/tests/webtbs/tw15207.pp @@ -0,0 +1,27 @@ +program testinline; + +{$mode objfpc}{$H+} + +type + enumtest = (e1, e2); + +function Test: Boolean; inline; +var + e: enumtest; + s: String; +begin + e := e1; + WriteStr(s, e); + result:=s='e1'; +end; + +procedure TestProc; +begin + if not Test then + halt(1); +end; + +begin + TestProc; +end. +