diff --git a/.gitattributes b/.gitattributes index 0bb1b064dc..0553cd41b5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5234,6 +5234,7 @@ tests/test/opt/tcmov.pp svneol=native#text/plain tests/test/opt/tcse1.pp svneol=native#text/plain tests/test/opt/tcse2.pp svneol=native#text/plain tests/test/opt/tcse3.pp svneol=native#text/plain +tests/test/opt/tgotoreg.pp svneol=native#text/plain tests/test/opt/treg1.pp svneol=native#text/plain tests/test/opt/treg2.dat -text tests/test/opt/treg2.pp svneol=native#text/plain diff --git a/tests/test/opt/tgotoreg.pp b/tests/test/opt/tgotoreg.pp new file mode 100644 index 0000000000..f0ed2e03db --- /dev/null +++ b/tests/test/opt/tgotoreg.pp @@ -0,0 +1,39 @@ +{% OPT=-Or} + +{$goto on} + +var + global: longint; + +procedure t1; +begin + { make sure it's not put in a register in t } + global := 1; +end; + +procedure t; +var + l: longint; + s1,s2,s3: ansistring; +label lab; +begin + t1; + l := 1; + s1 := 'ABC'; + s2 := 'DEF'; + s3 := ''; +lab: + inc(l); + inc(global); + if global > 10 then + halt(1); + if l = 10 then + s3 := 'ABCDEF'; + if s1+s2 <> s3 then + goto lab; +end; + +begin + t; +end. +