Package: valgrind Version: 1:3.13.0-2 Severity: important valgrind causes miscalculation on the following program:
---------------------------------------- #include <stdio.h> int main (void) { volatile union { long double d; unsigned long i[2]; } u; u.i[0] = 1; u.i[1] = 0; printf ("%La\n", u.d); return 0; } ---------------------------------------- zira:~> gcc tst.c -o tst zira:~> ./tst 0x0.000000000000001p-16385 zira:~> valgrind ./tst ==3567== Memcheck, a memory error detector ==3567== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==3567== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info ==3567== Command: ./tst ==3567== 0x0p+0 ==3567== ==3567== HEAP SUMMARY: ==3567== in use at exit: 0 bytes in 0 blocks ==3567== total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated ==3567== ==3567== All heap blocks were freed -- no leaks are possible ==3567== ==3567== For counts of detected and suppressed errors, rerun with: -v ==3567== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Instead of 0x0.000000000000001p-16385, one gets 0. Bug found with MPFR: the tset_ld test fails with valgrind for this reason. -- System Information: Debian Release: buster/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 4.14.0-3-amd64 (SMP w/8 CPU cores) Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=POSIX (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages valgrind depends on: ii libc6 2.26-6 ii libc6-dbg 2.26-6 Versions of packages valgrind recommends: ii gdb 7.12-6+b1 ii valgrind-dbg 1:3.13.0-2 Versions of packages valgrind suggests: pn alleyoop <none> pn kcachegrind <none> pn valgrind-mpi <none> pn valkyrie <none> -- no debconf information