[Issue 13032] New: std.internal.math.gammfunction assumes 80-bit real
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Thu Jul 3 08:21:19 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13032
Issue ID: 13032
Summary: std.internal.math.gammfunction assumes 80-bit real
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: major
Priority: P1
Component: Phobos
Assignee: nobody at puremagic.com
Reporter: johannespfau at gmail.com
std.internal.math.gammfunction assumes that reals are in x86 Extended Precision
Format. This is only true for x86 and gammafunction is actually the only module
with failing tests on ARM.
A simple way to test for systems where real==double is to use the -mlong-double
flag with gdc:
----
#Install gdc via linux distribution or from gdcproject.org/downloads/
wget
http://gdcproject.org/downloads/binaries/x86_64-linux-gnu/native_2.065_gcc4.9.0_a8ad6a6678_20140615.tar.xz
tar xf native_2.065_gcc4.9.0_a8ad6a6678_20140615.tar.xz
wget
https://raw.githubusercontent.com/D-Programming-GDC/GDC/master/libphobos/src/std/internal/math/gammafunction.d
echo "void main(){}" > main.d
# With default precision, tests should pass on x86 systems
./x86_64-gdcproject-linux-gnu/bin/x86_64-unknown-linux-gnu-gdc gammafunction.d
main.d -funittest -g
./a.out
# With real==double precision, tests fail
./x86_64-gdcproject-linux-gnu/bin/x86_64-unknown-linux-gnu-gdc gammafunction.d
main.d -funittest -g -mlong-double-64
./a.out
----
--
More information about the Digitalmars-d-bugs
mailing list