https://bugs.kde.org/show_bug.cgi?id=406360

            Bug ID: 406360
           Summary: memcheck/tests/libstdc++.supp needs more supression
                    variants
           Product: valgrind
           Version: 3.15 SVN
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: memcheck
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

memcheck/tests/leak_cpp_interior might fail because depending on compiler and
arch used the suppression file used doesn't catch some allocations through the
DT_INIT_ARRAY functions.

That memory doesn't actually leak, it gets freed by the __gnu_cxx::__freeres
hook. But since this testcase shows leaks while running, not after the program
ends, it needs to suppress these allocations.

Proposed new variants (covers issues seen on fedora 30 with x86_64 and
ppc64le):

diff --git a/memcheck/tests/libstdc++.supp b/memcheck/tests/libstdc++.supp
index fad537f..28ab182 100644
--- a/memcheck/tests/libstdc++.supp
+++ b/memcheck/tests/libstdc++.supp
@@ -49,6 +49,9 @@
 #    still reachable: 72,704 bytes in 1 blocks
 #         suppressed: 0 bytes in 0 blocks

+# All the following suppressions are variants of
+# _dl_init -> call_init which calls the DT_INIT_ARRAY functions
+
 {
    malloc-leaks-cxx-stl-string-classes
    Memcheck:Leak
@@ -61,6 +64,16 @@
    obj:*lib*/ld-2.*.so
 }
 {
+   malloc-leaks-cxx-stl-string-classes-2
+   Memcheck:Leak
+   match-leak-kinds: reachable
+   fun:malloc
+   obj:*lib*/libstdc++.so*
+   fun:call_init.part.0
+   fun:_dl_init
+   obj:*lib*/ld-2.*.so
+}
+{
   malloc-leaks-cxx-stl-string-classes-debug
   Memcheck:Leak
   match-leak-kinds: reachable
@@ -73,3 +86,13 @@
   fun:_dl_init
   obj:*lib*/ld-2.*.so
 }
+{
+   malloc-leaks-cxx-stl-string-classes-debug2
+   Memcheck:Leak
+   match-leak-kinds: reachable
+   fun:malloc
+   obj:*
+   fun:call_init
+   fun:_dl_init
+   fun:_dl_start_user
+}

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to