diff --git a/.gitattributes b/.gitattributes index 27550fbcaf..978f0ca9be 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7290,6 +7290,7 @@ tests/webtbs/tw7227.pp svneol=native#text/plain tests/webtbs/tw7276.pp svneol=native#text/plain tests/webtbs/tw7372.pp svneol=native#text/plain tests/webtbs/tw7379.pp svneol=native#text/plain +tests/webtbs/tw7425.pp svneol=native#text/plain tests/webtbs/ub1873.pp svneol=native#text/plain tests/webtbs/ub1883.pp svneol=native#text/plain tests/webtbs/uw0555.pp svneol=native#text/plain diff --git a/compiler/ppu.pas b/compiler/ppu.pas index 36f9850721..6b763ab962 100644 --- a/compiler/ppu.pas +++ b/compiler/ppu.pas @@ -43,7 +43,7 @@ type {$endif Test_Double_checksum} const - CurrentPPUVersion=63; + CurrentPPUVersion=64; { buffer sizes } maxentrysize = 1024; diff --git a/compiler/psystem.pas b/compiler/psystem.pas index 54269c3561..2bcba9d1ea 100644 --- a/compiler/psystem.pas +++ b/compiler/psystem.pas @@ -233,7 +233,6 @@ implementation addtype('Double',s64floattype); { extended size is the best real type for the target } addtype('Extended',pbestrealtype^); - addtype('Real',s64floattype); end; {$ifdef x86} if target_info.system<>system_x86_64_win64 then diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index 7c6dc22239..d59f4e0c54 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -65,6 +65,13 @@ Type Cardinal = LongWord; Integer = SmallInt; + { moved here from psystem.pas + Delphi allows chose of overloaded procedure depending + on Real <-> Double, so use type here, see also tw7425.pp (FK) } +{$ifndef VER2_0} + Real = type Double; +{$endif VER2_0} + {$ifdef CPUI386} {$define CPU32} diff --git a/tests/webtbs/tw7425.pp b/tests/webtbs/tw7425.pp new file mode 100644 index 0000000000..879eeea028 --- /dev/null +++ b/tests/webtbs/tw7425.pp @@ -0,0 +1,15 @@ +procedure a(r: double); overload; +begin +end; + +procedure a(r: real); overload; +begin +end; + +procedure a(r: extended); overload; +begin +end; + +begin + writeln(sizeof(real)); +end.