+++ /dev/null
-# This is a generated file, composed of the following suppression rules:
-# exp-ptrcheck.supp xfree-3.supp xfree-4.supp glibc-2.X-drd.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.X.supp
-{
- lib-X11-used-old-pointer-after-realloc-1
- exp-ptrcheck:Heap
- fun:strlen
- obj:/usr/lib*/libX11.so*
- obj:/usr/lib*/libX11.so*
-}
-{
- lib-X11-used-old-pointer-after-realloc-2
- exp-ptrcheck:Heap
- obj:/usr/lib*/libX11.so*
- obj:/usr/lib*/libX11.so*
-}
-
-{
- ld-2.X-invalid-Add32/64-who-knows
- exp-ptrcheck:Arith
- obj:/*lib*/ld-2.*so*
- obj:/*lib*/ld-2.*so*
-}
-
-{
- ld-2.X possibly applying relocations
- exp-ptrcheck:SorG
- obj:/*lib*/ld-2.*so*
- obj:/*lib*/ld-2.*so*
-}
-
-# I'm pretty sure this is a false positive caused by the sg_ stuff
-{
- glibc realpath false positive
- exp-ptrcheck:SorG
- fun:realpath
- fun:*
-}
-
-{
- If I had to guess, inlined or nameless strlen etc in ld.so
- exp-ptrcheck:Heap
- obj:/*lib*/ld-2.*so*
- obj:/*lib*/ld-2.*so*
-}
-
-{
- I think this is glibc's ultra optimised getenv doing 2 byte reads
- exp-ptrcheck:SorG
- fun:getenv
-}
-
-{
- Occurs on Fedora 7--9?
- exp-ptrcheck:Heap
- fun:_dl_fini
- fun:exit
- fun:(below main)
-}
-
-
-# Invalid read of size 16
-# at 0x5643A5C: ??? (strcpy.S:94)
-# by 0x50C6A99: XtResolvePathname (in /usr/lib/libXt.so.6.0.0)
-# by 0x50C3856: XtScreenDatabase (in /usr/lib/libXt.so.6.0.0)
-# by 0x50C4386: _XtDisplayInitialize (in /usr/lib/libXt.so.6.0.0)
-{
- Ubuntu 10.04 x86_64, SSEised strcpy, can't intercept
- exp-ptrcheck:Heap
- obj:/*lib*/libc-2.*so*
- obj:/*lib*/libX*so*
-}
-{
- Ubuntu 10.04 x86_64, SSEised strcpy, can't intercept - 2
- exp-ptrcheck:Heap
- obj:/*lib*/libc-2.*so*
- obj:/*lib*/libICE*so*
-}
-{
- Ubuntu 10.04 x86_64, SSEised strcpy, can't intercept - 3
- exp-ptrcheck:Heap
- obj:/*lib*/libc-2.*so*
- obj:/*lib*/libglib*so*
-}
-{
- Ubuntu 10.04 x86_64, SSEised strcpy, can't intercept - 4
- exp-ptrcheck:Heap
- obj:/*lib*/libc-2.*so*
- obj:/*lib*/libfontconfig*so*
-}
-
-##----------------------------------------------------------------------##
-
-# Errors to suppress by default with XFree86 3.3.6)
-
-# Format of this file is:
-# {
-# name_of_suppression
-# tool_name:supp_kind
-# (optional extra info for some suppression types)
-# caller0 name, or /name/of/so/file.so
-# caller1 name, or ditto
-# (optionally: caller2 name)
-# (optionally: caller3 name)
-# }
-#
-# For Memcheck, the supp_kinds are:
-#
-# Param Value1 Value2 Value4 Value8 Value16 Jump
-# Free Addr1 Addr2 Addr4 Addr8 Addr16
-# Cond (previously known as Value0)
-#
-# and the optional extra info is:
-# if Param: name of system call param
-
-##----------------------------------------------------------------------##
-
-{
- X11-Cond-0
- Memcheck:Cond
- obj:*libXt.so.6.0
- obj:*libXt.so.6.0
- obj:*libXt.so.6.0
-}
-{
- X11-Cond-1
- Memcheck:Cond
- fun:__rawmemchr
- obj:*libXt.so.6.0
- obj:*libXt.so.6.0
-}
-
-
-# Suppressions for XFree86-3.3.X
-
-{
- X11-Addr4-1
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libX11.so.6.1
- obj:/usr/X11R6/lib/libX11.so.6.1
- obj:/usr/X11R6/lib/libX11.so.6.1
-}
-
-{
- X11-Addr4-2
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libX11.so.6.1
- obj:/usr/X11R6/lib/libX11.so.6.1
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-3
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-4
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libX11.so.6.1
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-5
- Memcheck:Addr4
- fun:__rawmemchr
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-6
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libXmu.so.6.0
- obj:/usr/X11R6/lib/libXmu.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-7
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
-}
-
-{
- X11-Param-1
- Memcheck:Param
- write(buf)
- fun:__libc_write
- obj:/usr/X11R6/lib/libX11.so.6.1
- obj:/usr/X11R6/lib/libX11.so.6.1
-}
-
-{
- X11-Addr4-8
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libX11.so.6.1
- obj:/usr/X11R6/lib/libXpm.so.4.11
- obj:/usr/X11R6/lib/libXpm.so.4.11
-}
-
-{
- X11-Addr4-8
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-9
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libXaw.so.6.1
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-10
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libXaw.so.6.1
- obj:/usr/X11R6/lib/libXaw.so.6.1
- obj:/usr/X11R6/lib/libXt.so.6.0
-}
-
-{
- X11-Addr4-11
- Memcheck:Addr4
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXt.so.6.0
- obj:/usr/X11R6/lib/libXaw.so.6.1
-}
-
-
-
-##----------------------------------------------------------------------##
-
-##----------------------------------------------------------------------##
-
-# Errors to suppress by default with XFree86 4.1.0)
-
-# *** And a bunch of other stuff which is completely unrelated
-# to X. The default suppressions are a bit of a mess and could do
-# with a good tidying up.
-
-# Format of this file is:
-# {
-# name_of_suppression
-# tool_name:supp_kind
-# (optional extra info for some suppression types)
-# caller0 name, or /name/of/so/file.so
-# caller1 name, or ditto
-# (optionally: caller2 name)
-# (optionally: caller3 name)
-# }
-#
-# For Memcheck, the supp_kinds are:
-#
-# Param Value1 Value2 Value4 Value8 Value16 Jump
-# Free Addr1 Addr2 Addr4 Addr8 Addr16
-# Cond (previously known as Value0)
-#
-# and the optional extra info is:
-# if Param: name of system call param
-
-# Resulting from R H 8.0
-{
- *libc_write/libX11.so.6.2/*X11TransWrite(Param)
- Memcheck:Param
- write(buf)
- fun:*libc_write
- obj:/usr/*lib*/libX11.so*
- fun:*X11TransWrite
-}
-
-{
- libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libX11.so*
-}
-
-{
- libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libXt.so*
- obj:/usr/*lib*/libXt.so*
- obj:/usr/*lib*/libXt.so*
-}
-
-
-{
- libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libXaw.so*
- obj:/usr/*lib*/libXaw.so*
- obj:/usr/*lib*/libXaw.so*
-}
-
-{
- libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libXmu.so*
- obj:/usr/*lib*/libXmu.so*
- obj:/usr/*lib*/libXmu.so*
-}
-
-{
- libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libXt.so*
- obj:/usr/*lib*/libXt.so*
- obj:/usr/*lib*/libXaw.so*
-}
-
-{
- libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
- Memcheck:Value4
- obj:/usr/*lib*/libXaw.so*
- obj:/usr/*lib*/libXaw.so*
- obj:/usr/*lib*/libXt.so*
-}
-
-{
- libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libXaw.so*
- obj:/usr/*lib*/libXaw.so*
- obj:/usr/*lib*/libXt.so*
-}
-
-{
- libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libXaw.so*
-}
-
-{
- libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Addr4)
- Memcheck:Addr4
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libXaw.so*
-}
-
-{
- libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libXaw.so*
- obj:/usr/*lib*/libXaw.so*
-}
-
-{
- libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11
- Memcheck:Cond
- obj:/usr/*lib*/libXpm.so.4.11
- obj:/usr/*lib*/libXpm.so.4.11
- obj:/usr/*lib*/libXpm.so.4.11
-}
-
-{
- struct with uninitialized paddings
- Memcheck:Param
- writev(vector[...])
- fun:*_writev
- fun:_X11TransSocketWritev
- fun:_X11TransWritev
- fun:*
-}
-
-{
- struct with uninitialized paddings - libxcb
- Memcheck:Param
- writev(vector[...])
- obj:/lib*/*.so
- obj:/usr/lib*/libxcb.so.1.0.0
- obj:/usr/lib*/libxcb.so.1.0.0
- fun:xcb_send_request
- fun:_X*
-}
-
-{
- struct with uninitialized paddings - libxcb
- Memcheck:Param
- writev(vector[...])
- obj:/lib*/*.so
- obj:/usr/lib*/libxcb.so.1.0.0
- obj:/usr/lib*/libxcb.so.1.0.0
- obj:/usr/lib*/libxcb.so.1.0.0
- fun:xcb_*
- fun:_X*
-}
-
-{
- another struct with uninitialized paddings
- Memcheck:Param
- write(buf)
- obj:*
- fun:_IceTransSocketWrite
- fun:_IceTransWrite
- fun:_IceWrite
-}
-
-{
- Xorg 6.8.1 uninit _write* padding
- Memcheck:Param
- write(buf)
- fun:*
- fun:_X11TransWrite
- obj:/usr/*lib*/libX11.so*
-}
-
-{
- Xorg 6.8.1 uninit write padding
- Memcheck:Param
- write(buf)
- fun:write
- fun:_X11TransWrite
- obj:/usr/*lib*/libX11.so*
-}
-
-{
- Xorg 6.8.1 ICE uninit __write* padding
- Memcheck:Param
- write(buf)
- obj:*
- fun:_IceTransWrite
- fun:_IceWrite
- fun:IceFlush
-}
-
-{
- Xorg 6.8.1 writev uninit padding
- Memcheck:Param
- writev(vector[...])
- fun:writev
- obj:/usr/*lib*/libX11.so*
- fun:_X11TransWritev
- fun:_XSend
-}
-
-{
- Xorg 6.9.0 writev uninit padding
- Memcheck:Param
- writev(vector[...])
- fun:do_writev
- fun:writev
- obj:/usr/*lib*/libX11.so*
- fun:_X11TransWritev
- fun:_XSend
-}
-
-{
- X on SUSE11 writev uninit padding
- Memcheck:Param
- writev(vector[...])
- fun:writev
- obj:/usr/lib*/libxcb.so*
- obj:/usr/lib*/libxcb.so*
-}
-{
- X on SUSE11 writev uninit padding 2
- Memcheck:Param
- writev(vector[...])
- obj:/lib*/ld-2.*.so*
- obj:/usr/lib*/libxcb.so*
- obj:/usr/lib*/libxcb.so*
-}
-{
- X on SUSE11 writev uninit padding 3
- Memcheck:Param
- writev(vector[...])
- obj:/lib*/ld-2.*.so*
- obj:/usr/lib*/libORBit*.so*
- obj:/usr/lib*/libORBit*.so*
-}
-{
- X on SUSE11 writev uninit padding 4
- Memcheck:Param
- writev(vector[...])
- obj:/lib*/libc-2.*.so*
- obj:/usr/lib*/libORBit*.so*
- obj:/usr/lib*/libORBit*.so*
-}
-
-
-# There's something strange about a % 127 in XftFontOpenInfo
-# (hashing) which gcc turns into a multiply by 33818641 and
-# some other guff instead. I don't understand it enough to
-# know if libXft is broken or if memcheck's value tracking is
-# inadequate here. Anyway, for the moment, suppress it.
-#
-# Use of uninitialised value of size 8
-# at 0x71A59F8: XftFontOpenInfo (in /usr/X11R6/lib64/libXft.so.2.1.2)
-# by 0x71A5F0D: XftFontOpenPattern (in /usr/X11R6/lib64/libXft.so.2.1.2)
-# by 0x65F166E: loadFontConfigFont(QFontPrivate const*, QFontDef const&,
-# QFont::Script) (qfontdatabase_x11.cpp:1942)
-# by 0x65F5DE4: QFontDatabase::findFont(QFont::Script, QFontPrivate const*,
-# QFontDef const&, int) (qfontdatabase.cpp:996)
-{
- XftFontOpenInfo-umod-127-strangeness
- Memcheck:Value8
- obj:/usr/X11*/lib*/libXft.so*
- obj:/usr/X11*/lib*/libXft.so*
-}
-{
- XftFontOpenInfo-umod-127-strangeness-a-la-xorg
- Memcheck:Value8
- obj:/usr/lib*/libXft.so*
- obj:/usr/lib*/libXft.so*
-}
-
-{
- More X padding stuff
- Memcheck:Param
- writev(vector[...])
- fun:*writev*
- obj:/usr/X11*/lib*/libX11.so*
- obj:/usr/X11*/lib*/libX11.so*
-}
-
-# Inlined strlen in libX11 on Ubuntu 9.10 amd64, unfortunately.
-# Invalid read of size 4
-# at 0x9B5CCE6: ??? (in /usr/lib/libX11.so.6.2.0)
-# by 0x9B5D011: XGetAtomName (in /usr/lib/libX11.so.6.2.0)
-# by 0x86407C3: gdk_x11_xatom_to_atom_for_display
-# (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
-# by 0x8636817: ??? (in /usr/lib/libgdk-x11-2.0.so.0.1800.3)
-# Address 0x1a558e1c is 28 bytes inside a block of size 30 alloc'd
-# at 0x4C2552D: malloc (vg_replace_malloc.c:236)
-# by 0x9B642C0: _XUpdateAtomCache (in /usr/lib/libX11.so.6.2.0)
-# by 0x9B647F1: ??? (in /usr/lib/libX11.so.6.2.0)
-# by 0x9B81818: ??? (in /usr/lib/libX11.so.6.2.0)
-{
- libX11.so.6.2.0/libX11.so.6.2.0(Addr4)
- Memcheck:Addr4
- obj:/usr/*lib*/libX11.so*
- obj:/usr/*lib*/libX11.so*
-}
-
-##----------------------------------------------------------------------##
-# Completely inappropriate place, but ...
-
-{
- ifort-9.X-on-i686-1
- Memcheck:Addr4
- fun:unaligned_bigint
- fun:hash
- fun:for__add_to_lf_table
-}
-{
- ifort-9.X-on-amd64-1
- Memcheck:Addr8
- fun:unaligned_bigint
- fun:hash
- fun:for__add_to_lf_table
-}
-
-
-# zlib-1.2.x uses uninitialised memory in some tricky way which
-# apparently is harmless (it must amount to a vectorised while-loop,
-# nothing else makes sense). Fools Memcheck though. See the mentioned
-# URL for details.
-{
- zlib-1.2.x trickyness (1a): See http://www.zlib.net/zlib_faq.html#faq36
- Memcheck:Cond
- obj:/*lib*/libz.so.1.2.*
- ...
- obj:/*lib*/libz.so.1.2.*
- fun:deflate
-}
-{
- zlib-1.2.x trickyness (1b): See http://www.zlib.net/zlib_faq.html#faq36
- Memcheck:Cond
- obj:/*lib*/libz.so.1.2.*
- fun:deflate
-}
-
-{
- zlib-1.2.x trickyness (2a): See http://www.zlib.net/zlib_faq.html#faq36
- Memcheck:Value8
- obj:/*lib*/libz.so.1.2.*
- ...
- obj:/*lib*/libz.so.1.2.*
- fun:deflate
-}
-{
- zlib-1.2.x trickyness (2b): See http://www.zlib.net/zlib_faq.html#faq36
- Memcheck:Value8
- obj:/*lib*/libz.so.1.2.*
- fun:deflate
-}
-
-{
- zlib-1.2.x trickyness (3a): See http://www.zlib.net/zlib_faq.html#faq36
- Memcheck:Value4
- obj:/*lib*/libz.so.1.2.*
- ...
- obj:/*lib*/libz.so.1.2.*
- fun:deflate
-}
-{
- zlib-1.2.x trickyness (3b): See http://www.zlib.net/zlib_faq.html#faq36
- Memcheck:Value4
- obj:/*lib*/libz.so.1.2.*
- fun:deflate
-}
-
-
-##----------------------------------------------------------------------##
-
-## More general versions of some of the old X suppressions above
-{
- Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libXaw*so*
- obj:/usr/*lib*/libXaw*so*
- obj:/usr/*lib*/libXaw*so*
-}
-{
- Ubuntu804 libXaw.so.7.0/libXaw.so.7.0/libXt(Cond)
- Memcheck:Cond
- obj:/usr/*lib*/libXaw*so*
- obj:/usr/*lib*/libXaw*so*
- obj:/usr/*lib*/libXt*so*
-}
-
-{
- Ubuntu804-hack-1
- Memcheck:Overlap
- fun:mempcpy
- fun:_IO_default_xsputn
- obj:/lib*/libc-2.*so*
-}
-#
-# Suppression patterns for ld, the dynamic loader.
-#
-
-# Suppress all data races triggered by ld.
-{
- drd-ld
- drd:ConflictingAccess
- obj:/lib*/ld-*.so
-}
-
-#
-# Suppression patterns for libc.
-#
-
-# Suppress all data races where the topmost frame is inside libc.so. Although
-# this could hide some real data races, unfortunately this is the only way to
-# not report any false positives on stdio functions. The glibc functions
-# manipulating FILE objects use locking primitives that cannot be intercepted
-# easily. See also the definitions of _IO_lock_lock() etc. in the file
-# nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree.
-{
- drd-libc-stdio
- drd:ConflictingAccess
- obj:/lib*/libc-*
-}
-
-#
-# Suppression patterns for libstdc++, the implementation of the standard C++
-# library included with the gcc compiler.
-#
-# Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
-# and their predecessors) contain an implementation of the std::string class
-# that triggers conflicting memory accesses. See also
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
-#
-
-# {
-# drd-libstdc++-std::string::string()
-# drd:ConflictingAccess
-# fun:_ZNSsC1ERKSs
-# }
-
-{
- drd-libstdc++-cxa_guard_release
- drd:CondErr
- fun:pthread_cond_broadcast@*
- fun:__cxa_guard_release
-}
-
-
-#
-# Suppression patterns for libpthread.
-#
-
-{
- drd-libpthread-pthread_create
- drd:ConflictingAccess
- ...
- fun:pthread_create*
-}
-{
- drd-libpthread-pthread_join
- drd:ConflictingAccess
- fun:pthread_join
- fun:pthread_join
-}
-{
- drd-libpthread-__deallocate_stack
- drd:ConflictingAccess
- ...
- fun:__deallocate_stack
-}
-{
- drd-libpthread-__free_stacks
- drd:ConflictingAccess
- fun:__free_stacks
-}
-{
- drd-libpthread-__free_tcb
- drd:ConflictingAccess
- ...
- fun:__free_tcb
-}
-{
- drd-libpthread-__nptl_deallocate_tsd
- drd:ConflictingAccess
- fun:__nptl_deallocate_tsd
-}
-{
- drd-libpthread-pthread_detach
- drd:ConflictingAccess
- fun:pthread_detach
- fun:pthread_detach
-}
-{
- drd-libpthread-pthread_once
- drd:ConflictingAccess
- fun:pthread_once
-}
-{
- drd-libpthread-pthread_cancel_init
- drd:ConflictingAccess
- fun:pthread_cancel_init
-}
-{
- drd-libpthread-_Unwind_ForcedUnwind
- drd:ConflictingAccess
- ...
- fun:_Unwind_ForcedUnwind
-}
-{
- drd-libpthread-_Unwind_GetCFA
- drd:ConflictingAccess
- fun:_Unwind_GetCFA
-}
-{
- drd-libpthread-_Unwind_Resume
- drd:ConflictingAccess
- ...
- fun:_Unwind_Resume
-}
-{
- drd-libpthread-?
- drd:ConflictingAccess
- obj:/lib/libgcc_s.so.1
-}
-{
- drd-libpthread-nanosleep
- drd:ConflictingAccess
- fun:nanosleep
-}
-
-#
-# Suppression patterns for libgomp.
-#
-
-# Unfortunately many statements in libgomp trigger conflicting accesses. It is
-# not clear to me which of these are safe and which ones not. See also
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
-{
- drd-libgomp
- drd:ConflictingAccess
- obj:/usr/lib*/libgomp.so*
-}
-
-#
-# Suppression patterns for libX11.
-#
-
-{
- drd-libX11-XCreateFontSet
- drd:CondErr
- fun:pthread_cond_init*
- fun:_XReply
- fun:XListFontsWithInfo
- obj:/usr/lib*/libX11.so*
- fun:XCreateOC
- fun:XCreateFontSet
-}
-
-#
-# Suppression patterns for libxcb.
-#
-
-{
- drd-libxcb-xcb_wait_for_reply
- drd:CondErr
- fun:pthread_cond_destroy*
- fun:xcb_wait_for_reply
-}
-
-#
-# Suppression patterns for libglib.
-#
-
-{
- drd-libglib-access-g_threads_got_initialized
- drd:ConflictingAccess
- ...
- fun:g_slice_alloc
- fun:g_ptr_array_sized_new
-}
-{
- drd-libglib-access-g_threads_got_initialized
- drd:ConflictingAccess
- ...
- fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
- fun:_ZN20QEventDispatcherGlibC1EP7QObject
- obj:/usr/lib*/libQtCore.so.4.*
- obj:/usr/lib*/libQtCore.so.4.*
-}
-{
- drd-libglib-access-g_mem_initialized
- drd:ConflictingAccess
- fun:g_malloc0
-}
-{
- drd-libglib-g_private_get_posix_impl
- drd:ConflictingAccess
- fun:g_private_get_posix_impl
-}
-{
- drd-libglib-g_private_set_posix_impl
- drd:ConflictingAccess
- fun:g_private_set_posix_impl
-}
-{
- drd-libglib-g_get_language_names
- drd:ConflictingAccess
- fun:g_slice_free_chain_with_offset
-}
-{
- drd-libglib-g_main_context_new
- drd:ConflictingAccess
- fun:fcntl
- obj:/usr/lib*/libglib-*.so*
- fun:g_main_context_new
-}
-
-#
-# Suppression patterns for libQtCore.
-#
-
-{
- drd-libQtCore-deref-that-calls-QThreadData-destructor
- drd:ConflictingAccess
- fun:_ZN11QThreadDataD1Ev
- obj:/usr/lib*/libQtCore.so.4.*
-}
-{
- drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
- drd:ConflictingAccess
- obj:/usr/lib*/libQtCore.so.4.*
- fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
- fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
-}
-{
- drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
- drd:ConflictingAccess
- fun:_ZN14QReadWriteLock12lockForWriteEv
- fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
- fun:_ZN7QObjectD2Ev
-}
-{
- drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
- drd:ConflictingAccess
- fun:_ZN14QReadWriteLock12lockForWriteEv
- fun:_ZN12QWriteLocker6relockEv
- fun:_ZN12QWriteLockerC1EP14QReadWriteLock
- fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
- fun:_ZN7QObjectD2Ev
- fun:_ZN24QAbstractEventDispatcherD2Ev
- fun:_ZN20QEventDispatcherGlibD0Ev
-}
-{
- drd-libQtCore-QMutexPool::get(void const*)
- drd:ConflictingAccess
- fun:_ZN10QMutexPool3getEPKv
-}
-{
- drd-libQtCore-qt_gettime_is_monotonic()
- drd:ConflictingAccess
- fun:_Z23qt_gettime_is_monotonicv
-}
-
-#
-# Suppression patterns for libboost.
-#
-
-# Suppress the races on boost::once_flag::epoch and on
-# boost::detail::this_thread_epoch. See also the source file
-# boost/thread/pthread/once.hpp in the Boost source tree
-# (https://svn.boost.org/trac/boost/browser/trunk/boost/thread/pthread/once.hpp).
-{
- drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
- drd:ConflictingAccess
- ...
- fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
-}
-{
- drd-libboost-boost::detail::get_once_per_thread_epoch()
- drd:ConflictingAccess
- fun:_ZN5boost6detail25get_once_per_thread_epochEv
-}
-# Suppress the race reports on boost::detail::current_thread_tls_key. See also
-# https://svn.boost.org/trac/boost/ticket/3526 for more information about why
-# the access pattern of current_thread_tls_key is safe.
-{
- drd-libboost-boost::detail::get_current_thread_data()
- drd:ConflictingAccess
- ...
- fun:_ZN5boost6detail23get_current_thread_dataEv
-}
-{
- drd-libboost-boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
- drd:ConflictingAccess
- ...
- fun:_ZN5boost6detail23set_current_thread_dataEPNS0_16thread_data_baseE
-}
-
-# FIXME 22 Jan 09: helgrind-glibc2X-005 overlaps with a lot of
-# other stuff. They should be removed.
-
-##----------------------------------------------------------------------##
-# Suppressions for the Helgrind tool when using
-# a glibc-2.{3,4,5,6,7,8,9} system
-
-####################################################
-# glibc-2.X specific
-# These are generic cover-alls which catch a lot of stuff
-# in various combinations of ld, libc and libpthread
-#
-# Note this is heavyhanded and not very clever:
-#
-# - suppress anything that has its top frame in ld.so
-# That's fine, since it's mostly dynamic linking stuff,
-# which has various deliberate (harmless) races
-#
-# - suppress anything that has its top frame in libc.so.
-# This really isn't clever, since it could hide some
-# legitimate races. But the problem is, if we don't do
-# this, then loads of errors to do with stdio are reported, because
-# H fails to see glibc's internal locking/unlocking of FILE*s
-# as required by POSIX. A better solution is needed.
-
-#{
-# helgrind-glibc2X-001
-# Helgrind:Race
-# obj:/lib*/ld-2.*so*
-#}
-
-# helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
-
-# helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
-
-{
- helgrind-glibc2X-004
- Helgrind:Race
- obj:/lib*/libc-2.*so*
-}
-
-{
- helgrind-glibc2X-005
- Helgrind:Race
- obj:/lib*/libpthread-2.*so*
-}
-
-# helgrind-glibc2X-006 was merged into helgrind-glibc2X-005
-
-# helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
-
-# helgrind-glibc2X-008 was merged into helgrind-glibc2X-004
-
-# helgrind-glibc2X-009 was merged into helgrind-glibc2X-004
-
-# helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
-
-# helgrind-glibc2X-011 was merged into helgrind-glibc2X-004
-
-# helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
-
-# helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
-
-# helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
-
-# helgrind-glibc2X-015 was merged into helgrind-glibc2X-004
-
-# helgrind-glibc2X-016 was merged into helgrind-glibc2X-004
-
-# These are very ugly. They are needed to suppress errors inside (eg)
-# NPTL's pthread_cond_signal. Why only one stack frame -- at least we
-# should see the wrapper calling the real functions, right?
-# Unfortunately, no: the real functions are handwritten assembly (in
-# the glibc-2.5 sources) and does not create a proper stack frame.
-# Therefore it's only one level of unwinding before we're back out in
-# user code rather than the 2 levels you'd expect.
-{
- helgrind-glibc2X-101
- Helgrind:Race
- obj:/lib*/libpthread-2.*so*
- fun:pthread_*
-}
-{
- helgrind-glibc2X-102
- Helgrind:Race
- fun:mythread_wrapper
- obj:/lib*/libpthread-2.*so*
-}
-{
- helgrind-glibc2X-103
- Helgrind:Race
- fun:pthread_cond_*@@GLIBC_2.*
-}
-{
- helgrind-glibc2X-104
- Helgrind:Race
- fun:__lll_mutex_*
-}
-{
- helgrind-glibc2X-105
- Helgrind:Race
- fun:pthread_rwlock_*lock*
-}
-{
- helgrind-glibc2X-106
- Helgrind:Race
- fun:__lll_lock_wait
-}
-{
- helgrind-glibc2X-107
- Helgrind:Race
- obj:/lib*/libpthread-2.*so*
- fun:sem_*
-}
-{
- helgrind-glibc2X-108
- Helgrind:Race
- fun:clone
-}
-{
- helgrind-glibc2X-109
- Helgrind:Race
- fun:start_thread
-}
-{
- helgrind-glibc2X-110
- Helgrind:Race
- obj:/lib*/libc-2.*so*
- fun:pthread_*
-}
-{
- helgrind-glibc2X-111
- Helgrind:Race
- fun:__lll_*lock_*
-}
-{
- helgrind-glibc2X-113
- Helgrind:Race
- fun:pthread_barrier_wait*
-}
-
-
-####################################################
-# qt4 specific (GNU mangling)
-#
-{
- helgrind-qt4---QMutex::lock()-QMutex::lock()
- Helgrind:Race
- ...
- fun:_ZN6QMutex4lockEv
- fun:_ZN6QMutex4lockEv
-}
-
-{
- helgrind-qt4---QMutex::unlock()-QMutex::unlock()
- Helgrind:Race
- ...
- fun:_ZN6QMutex6unlockEv
- fun:_ZN6QMutex6unlockEv
-}
-
-{
- helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
- Helgrind:Race
- fun:pthread_setspecific
- fun:_ZN14QThreadPrivate5startEPv
-}
-
-
-####################################################
-# Other stuff.
-#
-# pthread_exit apparently calls some kind of unwind
-# mechanism - maybe to remove some number of frames
-# from the thread's stack, so as to get back to the
-# outermost frame for the thread? Anyway..
-
-{
- helgrind---*Unwind*-...-pthread_exit
- Helgrind:Race
- fun:*Unwind*
- ...
- fun:pthread_exit
-}
-
-{
- helgrind---...-*Unwind*-*pthread_unwind*
- Helgrind:Race
- ...
- fun:*Unwind*
- fun:*pthread_unwind*
-}
-
-{
- helgrind---...-*Unwind*-*pthread_unwind*
- Helgrind:Race
- ...
- fun:_Unwind*
- ...
- fun:_Unwind_Backtrace
-}
-
-
-
-
-####################################################
-# To do with thread stack allocation and deallocation?
-#
-{
- helgrind---free_stacks-__deallocate_stack
- Helgrind:Race
- fun:free_stacks
- fun:__deallocate_stack
-}
-
-{
- helgrind---__deallocate_stack-start_thread-clone
- Helgrind:Race
- fun:__deallocate_stack
- fun:start_thread
- fun:clone
-}
-
-
-####################################################
-# To do with pthread_{set,get}specific
-#
-{
- helgrind---pthread_setspecific
- Helgrind:Race
- fun:pthread_setspecific
-}
-
-{
- helgrind---pthread_getspecific
- Helgrind:Race
- fun:pthread_getspecific
-}
-
-
-####################################################
-# To do with dynamic linking
-#
-# helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001
-
-
-####################################################
-# To do with GNU libgomp
-#
-{
- helgrind---libgomp43-1
- Helgrind:Race
- fun:gomp_ordered_sync
-}
-
-{
- helgrind---libgomp43-1
- Helgrind:Race
- fun:gomp_ordered_next
-}
-
-{
- helgrind---libgomp43-1
- Helgrind:Race
- fun:gomp_ordered_last
-}
-
-##----------------------------------------------------------------------##
-
-# Errors to suppress by default with glibc 2.10.x
-
-# IMPORTANT: DO NOT EDIT glibc-2.X.supp, as it is as a generated
-# file. Instead edit glibc-2.X.supp.in.
-
-# Format of this file is:
-# {
-# name_of_suppression
-# tool_name:supp_kind
-# (optional extra info for some suppression types)
-# caller0 name, or /name/of/so/file.so
-# caller1 name, or ditto
-# (optionally: caller2 name)
-# (optionally: caller3 name)
-# }
-#
-# For Memcheck, the supp_kinds are:
-#
-# Param Value1 Value2 Value4 Value8 Value16 Jump
-# Free Addr1 Addr2 Addr4 Addr8 Addr16
-# Cond (previously known as Value0)
-#
-# and the optional extra info is:
-# if Param: name of system call param
-
-##----------------------------------------------------------------------##
-##--- generic suppressions ---##
-##----------------------------------------------------------------------##
-
-{
- dl-hack3-cond-0
- Memcheck:Cond
- fun:_dl_start
- fun:_start
-}
-{
- dl-hack3-cond-1
- Memcheck:Cond
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
-}
-{
- dl-hack3-cond-2
- Memcheck:Cond
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/libc-2.10*.so*
-}
-{
- dl-hack3-cond-3
- Memcheck:Cond
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/libc-2.10*.so*
- obj:/lib*/libc-2.10*.so*
-}
-{
- dl-hack3-cond-4
- Memcheck:Cond
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/libdl-2.10*.so*
-}
-
-{
- dl-hack4-64bit-addr-1
- Memcheck:Addr8
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
-}
-{
- dl-hack4-64bit-addr-2
- Memcheck:Addr8
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/libc-2.10*.so*
-}
-{
- dl-hack4-64bit-addr-3
- Memcheck:Addr8
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/ld-2.10*.so*
- obj:/lib*/libdl-2.10*.so*
-}
-
-{
- dl-hack5-32bit-addr-1
- Memcheck:Addr4
- obj:/lib*/ld-2.10*.so
- obj:/lib*/ld-2.10*.so
- obj:/lib*/ld-2.10*.so
-}
-{
- dl-hack5-32bit-addr-3
- Memcheck:Addr4
- obj:/lib*/ld-2.10*.so
- obj:/lib*/ld-2.10*.so
- obj:/lib*/libdl-2.10*.so*
-}
-{
- dl-hack5-32bit-addr-4
- Memcheck:Addr4
- obj:/lib*/ld-2.10*.so
- obj:/lib*/libdl-2.10*.so*
- obj:/lib*/ld-2.10*.so
-}
-
-
-##----------------------------------------------------------------------##
-##--- Misc ad-hoc hacks ---##
-##----------------------------------------------------------------------##
-{
- glibc-2.5.x-on-SUSE-10.2-(PPC)-1
- Memcheck:Cond
- fun:_dl_start_final
- fun:_dl_start
- fun:_start
-}
-{
- glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
- Memcheck:Cond
- fun:index
- obj:*ld-2.10.*.so
-}
-{
- glibc-2.5.x-on-SuSE-10.2-(PPC)-2b
- Memcheck:Addr4
- fun:index
- fun:expand_dynamic_string_token
-}
-{
- glibc-2.5.5-on-SuSE-10.2-(PPC)-2c
- Memcheck:Addr4
- fun:index
- obj:*ld-2.10.*.so
-}
-{
- glibc-2.3.5-on-SuSE-10.1-(PPC)-3
- Memcheck:Addr4
- fun:*wordcopy_fwd_dest_aligned*
- fun:mem*cpy
- obj:*lib*2.10.*.so
-}
-
-{
- glibc-2.10-on-SUSE-10.3-(x86)
- Memcheck:Addr4
- obj:/lib/ld-2.10*.so
- obj:/lib/ld-2.10*.so
- obj:/lib/ld-2.10*.so
-}
-
-{
- glibc24-64bit-padding-1a
- Memcheck:Param
- socketcall.sendto(msg)
- fun:send
- fun:get_mapping
- fun:__nscd_get_map_ref
- fun:nscd*
-}
-{
- glibc24-64bit-padding-1b
- Memcheck:Param
- socketcall.sendto(msg)
- fun:__sendto_nocancel
- obj:/*libc-2.10.so
- obj:/*libc-2.10.so
- obj:/*libc-2.10.so
-}
-{
- glibc24-64bit-padding-1c
- Memcheck:Param
- socketcall.send(msg)
- fun:send
- fun:__nscd_get_map_ref
- fun:nscd_get*_r
- fun:*nscd*
- obj:/*libc-2.10.so
-}
-
-
-{
- X11-64bit-padding-3a
- Memcheck:Param
- write(buf)
- obj:/*libpthread-2.4.so*
- obj:/usr/lib*/libX11.so*
- obj:/usr/lib*/libX11.so*
- obj:/usr/lib*/libX11.so*
-}
-
-{
- X11-64bit-padding-4a
- Memcheck:Param
- socketcall.sendto(msg)
- fun:send
- obj:/*libc-2.10.so
- obj:/*libc-2.10.so
- obj:/*libc-2.10.so
-}
-{
- X11-64bit-padding-4b
- Memcheck:Param
- socketcall.send(msg)
- fun:send
- obj:/*libc-2.10.so
- obj:/*libc-2.10.so
- obj:/*libc-2.10.so
-}
-
-##----------------------------------------------------------------------##
-# MontaVista Linux 4.0.1 on ppc32
-{
- MVL-401-linuxthreads-pthread_create
- Memcheck:Param
- write(buf)
- fun:pthread_create
-}
-{
- MVL-401-linuxthreads-pthread_create
- Memcheck:Param
- write(buf)
- obj:/lib/libpthread-0.10.so
- fun:pthread_create
-}
-
-##----------------------------------------------------------------------##
-# Ubuntu 10.04 on ARM (Thumb). Not sure why this is necessary.
-{
- U1004-ARM-_dl_relocate_object
- Memcheck:Cond
- fun:_dl_relocate_object
-}