diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2018-11-28 17:54:07 +0000 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2018-11-28 17:54:07 +0000 |
commit | 85041a5b7755dc7b9d74b183e933d89152997886 (patch) | |
tree | 2967bb1b7ffbc8c178b109a75f117df37895e144 /libphobos/src | |
parent | 735352d2eede1e412cb89f45a5c3e0846bce39af (diff) | |
download | gcc-85041a5b7755dc7b9d74b183e933d89152997886.zip gcc-85041a5b7755dc7b9d74b183e933d89152997886.tar.gz gcc-85041a5b7755dc7b9d74b183e933d89152997886.tar.bz2 |
Merge libphobos upstream version 2.076.1
Updated the library version to 76:3:0.
libphobos/ChangeLog:
2018-11-28 Iain Buclaw <ibuclaw@gdcproject.org>
* Makefile.in: Rebuild.
* configure: Rebuild.
* configure.ac (DRUNTIME_SOVERSION): Remove.
(PHOBOS_SOVERSION): Remove.
(libtool_VERSION): Add.
* libdruntime/Makefile.am: Use libtool_VERSION.
* libdruntime/Makefile.in: Rebuild.
* src/Makefile.am: Use libtool_VERSION.
* src/Makefile.in: Rebuild.
* testsuite/Makefile.in: Rebuild.
From-SVN: r266572
Diffstat (limited to 'libphobos/src')
-rw-r--r-- | libphobos/src/Makefile.am | 2 | ||||
-rw-r--r-- | libphobos/src/Makefile.in | 5 | ||||
-rw-r--r-- | libphobos/src/std/complex.d | 5 | ||||
-rw-r--r-- | libphobos/src/std/math.d | 14 | ||||
-rw-r--r-- | libphobos/src/std/random.d | 6 |
5 files changed, 20 insertions, 12 deletions
diff --git a/libphobos/src/Makefile.am b/libphobos/src/Makefile.am index c5b36ae..3ced3ae 100644 --- a/libphobos/src/Makefile.am +++ b/libphobos/src/Makefile.am @@ -57,7 +57,7 @@ toolexeclib_DATA = libgphobos.spec toolexeclib_LTLIBRARIES = libgphobos.la libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES) $(ZLIB_SRC) libgphobos_la_LIBTOOLFLAGS = -libgphobos_la_LDFLAGS = -Xcompiler -nophoboslib -version-info $(PHOBOS_SOVERSION) +libgphobos_la_LDFLAGS = -Xcompiler -nophoboslib -version-info $(libtool_VERSION) libgphobos_la_LIBADD = ../libdruntime/libgdruntime.la libgphobos_la_DEPENDENCIES = libgphobos.spec diff --git a/libphobos/src/Makefile.in b/libphobos/src/Makefile.in index 08470ab..f0c8f87 100644 --- a/libphobos/src/Makefile.in +++ b/libphobos/src/Makefile.in @@ -507,7 +507,6 @@ DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@ DCFG_MINFO_BRACKETING = @DCFG_MINFO_BRACKETING@ DCFG_THREAD_MODEL = @DCFG_THREAD_MODEL@ DEFS = @DEFS@ -DRUNTIME_SOVERSION = @DRUNTIME_SOVERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -552,7 +551,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PHOBOS_SOVERSION = @PHOBOS_SOVERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ @@ -599,6 +597,7 @@ libphobos_builddir = @libphobos_builddir@ libphobos_srcdir = @libphobos_srcdir@ libphobos_toolexecdir = @libphobos_toolexecdir@ libphobos_toolexeclibdir = @libphobos_toolexeclibdir@ +libtool_VERSION = @libtool_VERSION@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ @@ -698,7 +697,7 @@ toolexeclib_DATA = libgphobos.spec toolexeclib_LTLIBRARIES = libgphobos.la libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES) $(ZLIB_SRC) libgphobos_la_LIBTOOLFLAGS = -libgphobos_la_LDFLAGS = -Xcompiler -nophoboslib -version-info $(PHOBOS_SOVERSION) +libgphobos_la_LDFLAGS = -Xcompiler -nophoboslib -version-info $(libtool_VERSION) libgphobos_la_LIBADD = ../libdruntime/libgdruntime.la libgphobos_la_DEPENDENCIES = libgphobos.spec diff --git a/libphobos/src/std/complex.d b/libphobos/src/std/complex.d index 7763822..b078051 100644 --- a/libphobos/src/std/complex.d +++ b/libphobos/src/std/complex.d @@ -853,7 +853,10 @@ Complex!T cos(T)(Complex!T z) @safe pure nothrow @nogc import std.math; assert(cos(complex(0.0)) == 1.0); assert(cos(complex(1.3L)) == std.math.cos(1.3L)); - assert(cos(complex(0, 5.2L)) == cosh(5.2L)); + auto c1 = cos(complex(0, 5.2L)); + auto c2 = cosh(5.2L); + assert(feqrel(c1.re, c2.re) >= real.mant_dig - 1 && + feqrel(c1.im, c2.im) >= real.mant_dig - 1); } diff --git a/libphobos/src/std/math.d b/libphobos/src/std/math.d index 84cf4a7..7bb4d7c 100644 --- a/libphobos/src/std/math.d +++ b/libphobos/src/std/math.d @@ -177,7 +177,7 @@ version (StaticallyHaveSSE) { private enum bool haveSSE = true; } -else +else version (X86) { static import core.cpuid; private alias haveSSE = core.cpuid.sse; @@ -887,7 +887,7 @@ Lret: {} -9.889929415807650724957118893791829849557E-1L ]; static immutable real[7] Q = [ - 8.650244186622719093893836740197250197602E10L + 8.650244186622719093893836740197250197602E10L, -4.152206921457208101480801635640958361612E10L, 2.758476078803232151774723646710890525496E9L, -5.733709132766856723608447733926138506824E7L, @@ -3141,7 +3141,8 @@ float ldexp(float n, int exp) @safe pure nothrow @nogc { return ldexp(cast(real) @safe pure nothrow @nogc unittest { - static if (floatTraits!(real).realFormat == RealFormat.ieeeExtended) + static if (floatTraits!(real).realFormat == RealFormat.ieeeExtended || + floatTraits!(real).realFormat == RealFormat.ieeeQuadruple) { assert(ldexp(1.0L, -16384) == 0x1p-16384L); assert(ldexp(1.0L, -16382) == 0x1p-16382L); @@ -4453,6 +4454,7 @@ long lrint(real x) @trusted pure nothrow @nogc const j = sign ? -OF : OF; x = (j + x) - j; + const exp = (vu[F.EXPPOS_SHORT] & F.EXPMASK) - (F.EXPBIAS + 1); const implicitOne = 1UL << 48; auto vl = cast(ulong*)(&x); vl[MANTISSA_MSB] &= implicitOne - 1; @@ -4460,7 +4462,6 @@ long lrint(real x) @trusted pure nothrow @nogc long result; - const exp = (vu[F.EXPPOS_SHORT] & F.EXPMASK) - (F.EXPBIAS + 1); if (exp < 0) result = 0; else if (exp <= 48) @@ -5337,6 +5338,7 @@ private: } else version (AArch64) { + ControlState cont; asm pure nothrow @nogc { "mrs %0, FPCR;" : "=r" cont; @@ -6668,6 +6670,10 @@ if (isFloatingPoint!(F) && isIntegral!(G)) { pragma(msg, "test disabled on ARM, see bug 5628"); } + else version (GNU) + { + pragma(msg, "test disabled on GNU, see bug 5628"); + } else { assert(pow(xd, neg2) == 1 / (x * x)); diff --git a/libphobos/src/std/random.d b/libphobos/src/std/random.d index b3116e18..f4c64d4 100644 --- a/libphobos/src/std/random.d +++ b/libphobos/src/std/random.d @@ -64,15 +64,15 @@ import std.traits; // Generate a uniformly-distributed integer in the range [0, 14] // If no random generator is passed, the global `rndGen` would be used auto i = uniform(0, 15, rnd); - assert(i == 12); + assert(i >= 0 && i < 15); // Generate a uniformly-distributed real in the range [0, 100) auto r = uniform(0.0L, 100.0L, rnd); - assert(r == 79.65429843861011285); + assert(r >= 0 && r < 100); // Generate a 32-bit random number auto u = uniform!uint(rnd); - assert(u == 4083286876); + static assert(is(typeof(u) == uint)); } version (unittest) |