https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106832
--- Comment #24 from Iain Buclaw <ibuclaw at gdcproject dot org> --- (In reply to Peter Bergner from comment #22) > (In reply to Peter Bergner from comment #21) > > For the record, this is what I'm testing with: > > So we get farther, but ICE again at: > /home/bergner/gcc/gcc-fsf-mainline-lang-D/libphobos/src/std/math/exponential. > d:1104:9: error: static assert: "Not implemented for this architecture" > 1104 | static assert(0, "Not implemented for this architecture"); > | ^ > /home/bergner/gcc/gcc-fsf-mainline-lang-D/libphobos/src/std/math/exponential. > d:981:19: note: instantiated from here: ‘expImpl!real’ > 981 | return expImpl(x); > | ^ > > Looking at expImpl(), it has implementations for all of the float types > except for IBM128. Maybe just need to add support for that??? I'd imagine all static asserts would be hit, so a lot more than that - floor, tan, sin, cos, pow, etc... - some of which are not exactly trivial to implement for the IBM format (I've looked at it on a couple occasions over the last decade). std/math/algebraic.d:696: static assert(0); std/math/exponential.d:1104: static assert(0, "Not implemented for this architecture"); std/math/exponential.d:1241: static assert(0, "No exp() tests for real type!"); std/math/exponential.d:1514: static assert(0); std/math/exponential.d:1590: static assert(0, "no coefficients for expm1()"); std/math/exponential.d:1906: static assert(0); std/math/exponential.d:1976: static assert(0, "no coefficients for exp2()"); std/math/exponential.d:2804: else static assert(false, "Floating point type real not supported"); std/math/hardware.d:764: static assert(false, "Not implemented for this architecture"); std/math/hardware.d:879: static assert(false, "Not implemented for this architecture"); std/math/hardware.d:896: static assert(false, "Not implemented for this architecture"); std/math/operations.d:925: static assert(false, "Not implemented for this architecture"); std/math/operations.d:1792: static assert(false, "Floating point type `" ~ F.realFormat ~ "` not supported."); std/math/package.d:418: static assert(false, "No traits support for " ~ T.stringof); std/math/package.d:482: static assert(false, "No traits support for " ~ T.stringof); std/math/rounding.d:698: static assert(false, "real type not supported by lrint()"); std/math/rounding.d:953: static assert(false, "Not implemented for this architecture"); std/math/traits.d:305: static assert(false, "Not implemented for this architecture"); std/math/trigonometry.d:305: static assert(0); std/math/trigonometry.d:381: static assert(0, "no coefficients for tan()"); std/math/trigonometry.d:758: static assert(0, "no coefficients for atan()");