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

Reply via email to