diff --git a/.gitattributes b/.gitattributes index a8e4099f9c..70d02c3b9c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16019,6 +16019,7 @@ tests/webtbs/tw33098.pp svneol=native#text/pascal tests/webtbs/tw33167.pp svneol=native#text/pascal tests/webtbs/tw3320.pp svneol=native#text/plain tests/webtbs/tw33202.pp svneol=native#text/pascal +tests/webtbs/tw33222.pp svneol=native#text/pascal tests/webtbs/tw3324.pp svneol=native#text/plain tests/webtbs/tw3327.pp svneol=native#text/plain tests/webtbs/tw3328.pp svneol=native#text/plain diff --git a/tests/webtbs/tw33222.pp b/tests/webtbs/tw33222.pp new file mode 100644 index 0000000000..315870adfa --- /dev/null +++ b/tests/webtbs/tw33222.pp @@ -0,0 +1,25 @@ +var + hl : record + hashnext : pqword; + end; + fs : dword; + sr : record + slot : dword; + end; + +procedure p; +begin + hl.hashnext[sr.slot] := (qword(fs) shl 32) or dword(hl.hashnext[sr.slot]); +end; + +begin + fs:=$12341234; + sr.slot:=0; + getmem(hl.hashnext,sizeof(qword)); + hl.hashnext[sr.slot]:=$1eadbeef00000000; + p; + if hl.hashnext[sr.slot]<>$1234123400000000 then + halt(1); + freemem(hl.hashnext); + writeln('ok'); +end.