# valgrind suppression file # Usage: # valgrind --suppressions=valgrind.supp ./temacs # Conservative garbage collection inherently looks at uninitialized values, # and garbage_collect and its callees all depend on this. # It's hard to separate out exactly which callees need to be listed here, # since the C compiler can inline them. Also, valgrind doesn't care # about the use of uninitialized variables directly, only when their values # are eventually used. So just list garbage_collect and its callees. { garbage_collect Cond - conservative garbage collection Memcheck:Cond ... fun:garbage_collect } { garbage_collect Value8 - conservative garbage collection Memcheck:Value8 ... fun:garbage_collect } # valgrind only looks at the last few callees on the stack, but # mark_object can call itself recursively and deeply. So list # it too, in case garbage_collect is a long way from the stack top. { mark_object Cond - conservative garbage collection Memcheck:Cond ... fun:mark_object } { mark_object Value8 - conservative garbage collection Memcheck:Value8 ... fun:mark_object } # valgrind gets confused about mark_stack and loses its caller { mark_stack Value8 - conservative garbage collection Memcheck:Value8 ... fun:mark_stack } # On a circa-2017 x86-64 GNU/Linux platform, memmove falsely warns # about overlapping moves. { memmove false alarm about overlap Memcheck:Overlap ... fun:memmove } # On one circa-2011 x86-64 GNU/Linux platform, strlen is inlined to # something that loads 4 bytes at a time. #{ # init_buffer optimized strlen # Memcheck:Addr4 # fun:init_buffer #}