Browse Source

* New test to catch issue identified in #40003

J. Gareth "Curious Kit" Moreton 2 years ago
parent
commit
5704626762
1 changed files with 20 additions and 0 deletions
  1. 20 0
      tests/webtbs/tw40003.pp

+ 20 - 0
tests/webtbs/tw40003.pp

@@ -0,0 +1,20 @@
+{ %OPT=-O2 }
+
+program tw40003;
+
+{ Code triggers faulty optimisation in OptPass2Movx }
+
+{$mode objfpc} {$typedaddress on}
+var
+    value, thirdByte: uint32;
+begin
+    (@value)^ := $11223344 + random(0);
+    thirdByte := byte(value shr 16);
+    writeln('byte($11223344 shr 16) = $', HexStr(thirdByte, 1 + BsrDWord(thirdByte) div 4), ' (must be $22)');
+    if thirdbyte <> 34 then
+      begin
+        WriteLn('FAIL');
+        Halt(1);
+      end;
+    WriteLn('ok');
+end.