[Bug 242067] libc: r354823 riscv64 has a fault in printf() where IEEE754-2008 fp128 data is output wrong
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Jun 29 19:31:24 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242067
--- Comment #9 from commit-hook at freebsd.org ---
A commit references this bug:
Author: mhorne
Date: Mon Jun 29 19:30:35 UTC 2020
New revision: 362788
URL: https://svnweb.freebsd.org/changeset/base/362788
Log:
Fix printf(3) output of long doubles on RISC-V
When the RISC-V port was initially committed to FreeBSD, GCC would
generate 64-bit long doubles, and the definitions in _fpmath.h reflected
that. This was changed to 128-bit in GCC later that year [1], but the
definitions were never updated, despite the documented workaround. This
causes printf(3) and friends to interpret only the low 64-bits of a long
double in ldtoa, thereby printing incorrect values.
Update the definitions now that both clang and GCC generate 128-bit long
doubles.
[1]
https://github.com/riscv/riscv-gcc/commit/54b21fc5ae83cefec44bc2caed4a8c664c274ba0
PR: 242067
Reported by: Dennis Clarke <dclarke at blastwave.org>
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D25420
Changes:
head/lib/libc/riscv/_fpmath.h
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list