2
0
Эх сурвалжийг харах

* Fixed multiplying negative tBCD values

git-svn-id: trunk@17744 -
joost 14 жил өмнө
parent
commit
96ec37aa92

+ 1 - 0
.gitattributes

@@ -9108,6 +9108,7 @@ tests/tbs/tb0571.pas svneol=native#text/plain
 tests/tbs/tb0572.pp svneol=native#text/plain
 tests/tbs/tb0572.pp svneol=native#text/plain
 tests/tbs/tb0573.pp svneol=native#text/plain
 tests/tbs/tb0573.pp svneol=native#text/plain
 tests/tbs/tb0574.pp svneol=native#text/pascal
 tests/tbs/tb0574.pp svneol=native#text/pascal
+tests/tbs/tb0575.pp svneol=native#text/plain
 tests/tbs/tb205.pp svneol=native#text/plain
 tests/tbs/tb205.pp svneol=native#text/plain
 tests/tbs/ub0060.pp svneol=native#text/plain
 tests/tbs/ub0060.pp svneol=native#text/plain
 tests/tbs/ub0069.pp svneol=native#text/plain
 tests/tbs/ub0069.pp svneol=native#text/plain

+ 1 - 0
rtl/objpas/fmtbcd.pp

@@ -2100,6 +2100,7 @@ writeln;
               bhr.Singles[FDig] := ue MOD 10;
               bhr.Singles[FDig] := ue MOD 10;
               ue := ue DIV 10;
               ue := ue DIV 10;
              end;
              end;
+          bhr.neg := bh1.Neg XOR bh2.Neg;
           bhr.Plac := LDig;
           bhr.Plac := LDig;
           bhr.FDig := FDig;
           bhr.FDig := FDig;
           if LDig > high ( bhr.Singles )
           if LDig > high ( bhr.Singles )

+ 14 - 0
tests/tbs/tb0575.pp

@@ -0,0 +1,14 @@
+{$mode objfpc}{$H+}
+
+uses
+  FmtBCD;
+
+var
+  bcd: tbcd;
+  li: integer;
+begin
+  bcd := -100;
+  li := bcd * 2;
+  if li<>-200 then
+    Halt(1);
+end.