git-svn-id: svn://ttmath.org/publicrep/ttmath/trunk@1198 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2019-07-31 07:21:10 +00:00
parent 132fa10cd4
commit f98c434fc4
1 changed files with 14 additions and 1 deletions

View File

@ -1,4 +1,17 @@
Version 0.9.4prerelease (....):
Version 0.9.4_prerelease (....):
* fixed: cannot compile on MS Windows when compiling with GCC (Mingw) for 64 bit platform:
incorrect size of ttmath::uint and ::sint were used
they were 'long' but 'long' is a 32bit type on Windows
* fixed: a crash in Big::Add() (buffer overflow)
there was an offset calculated from Int type by using Abs() method and a carry was not checked
(if there is a carry we should not make addition -- the argument is too small)
this had no impact on calculated values because there was a crash (bus error) immediately
following program could crash (64bit):
typedef ttmath::Big<1, 8> MyBig;
ttmath::Parser<MyBig> parser;
parser.Parse("2^(2^63) + 1");
* fixed: similar problems were in methods Big::BitAnd() Big::BitOr() and Big::BitXor() (bitwise operations)
and they could return incorrect values
* fixed: in x86_64 asm code (*.asm for Win64) there was in some places esp register used,
there should be rsp used instead
this affects MS Windows users when they use the asm version (ttmathuint_x86_64_msvc.asm)