https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82333
--- Comment #1 from Michael Meissner <meissner at gcc dot gnu.org> --- This occurs because both fld and ff128 return the same constant (0), one using it as a long double and the other as a _Float128. Having a 0 constant is not important. If we return 1 in both functions, it will still trap. If we change the constant so each function (fld and ff128) returns a different value, it works. If we suppress inlining, it works.