On Thu, 28 Mar 2019, Niels Möller wrote:
Vincent Lefevre <vinc...@vinc17.net> writes:
On my Debian/unstable x86_64 machine (with GMP 6.1.2):
#include <gmp.h>
int main (void)
{
mpz_t z;
mpz_init (z);
mpz_set_ui (z, 1);
mpz_dump (z);
mpz_clear (z);
return 0;
}
compiled with: clang-7 -fsanitize=memory -o tst tst.c -lgmp
Is -fsanitize=memory reliable when the C compiler doesn't get to see all
the source files? Do you get the same result of you recompile gmp using
CC='clang-7 -fsanitize=memory'? If you also recompile with
--disable-assembly?
Just recompiling GMP with CC='clang-7 -fsanitize=memory' (and
--disable-shared) gives the more specific
==28897==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x498856 in mpn_bc_get_str /tmp/g/mpn/get_str.c:239:7
#1 0x497843 in __gmpn_get_str /tmp/g/mpn/get_str.c:430:12
#2 0x496e83 in __gmpz_get_str /home/glisse/repos/gmp/mpz/get_str.c:96:14
#3 0x496af7 in __gmpz_dump /home/glisse/repos/gmp/mpz/dump.c:45:9
#4 0x4969ec in main /tmp/b.c:9:3
#5 0x7f743f2ef09a in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
#6 0x41e2a9 in _start (/tmp/a.out+0x41e2a9)
SUMMARY: MemorySanitizer: use-of-uninitialized-value
/tmp/g/mpn/get_str.c:239:7 in mpn_bc_get_str
Exiting
while adding --disable-assembly lets the program run without error.
--
Marc Glisse
_______________________________________________
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs