# Valgrind suppressions for stuff that we cannot control

# Memory leaks in standard tools (e.g. dash, tail, or sort)
{
   Memory leak in /bin tools
   Memcheck:Leak
   ...
   obj:/bin/*
}

{
   Memory leak in /usr/bin tools
   Memcheck:Leak
   ...
   obj:/usr/bin/*
}

# There's a constant leak of 56 bytes in the depths of libc which
# manifests, for example, when using backtrace()
{
   Memory leak in libc/dlopen with -pthread
   Memcheck:Leak
   fun:malloc
   fun:_dl_map_object_deps
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:do_dlopen
   fun:_dl_catch_error
   fun:dlerror_run
   fun:__libc_dlopen_mode
}

# Memory leaks appearing to be in libcgraph.  They can be seen with the
# following simple program:
# ,----
# | #include <stdio.h>
# | #include <graphviz/cgraph.h>
# | int main(int argc, char *argv[])
# | {
# |     if (argc == 1) {
# |         printf("Usage: %s <dotfile>\n", argv[0]);
# |         return 1;
# |     }
# |     Agraph_t *g;
# |     FILE *inf = fopen(argv[1], "r");
# |     g = agread(inf, 0);
# |     fclose(inf);
# |     agclose(g);
# |     return 0;
# | }
# `----
{
   Memory leak in libcgraph (1/2)
   Memcheck:Leak
   fun:malloc
   ...
   obj:/usr/lib/libcgraph.so*
   fun:aaglex
   fun:aagparse
   fun:agconcat
}
{
   Memory leak in libcgraph (2/2)
   Memcheck:Leak
   fun:malloc
   ...
   fun:agnode
   obj:/usr/lib/libcgraph.so*
   fun:aagparse
   fun:agconcat
}

# We're not interested by memory leaks in the Lua interpreter
{
   Memory leak in lua
   Memcheck:Leak
   ...
   fun:luaD_precall
}
