
# Suppressions for Darwin 12.x / Mac OS X 10.8 Mountain Lion

# ZLib stuff.  How come this wasn't necessary in 10.6 ?
{
   OSX108:zlib-C
   Memcheck:Cond
   obj:/usr/lib/libz.*dylib
   obj:/usr/lib/libz.*dylib
}
{
   OSX108:zlib-8
   Memcheck:Value8
   obj:/usr/lib/libz.*dylib
   obj:/usr/lib/libz.*dylib
}

############################
## Possibly all to do with borked/incomplete 10.8 syscall wrappers
## Consider all of these as a temporary kludge.  It would be much
## better to fix the wrappers correctly (iow, actually implement them).

{
   OSX108:CoreFoundation-1
   Memcheck:Value8
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
}

{
   OSX108:CoreFoundation-2
   Memcheck:Cond
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
}

{
   OSX108:CoreGraphics-1
   Memcheck:Cond
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
}

# Use of uninitialised value of size 8
#    at 0x39CC164: aes_encrypt_xmm_no_save
{
   OSX108:aes_encrypt_xmm_no_save
   Memcheck:Value8
   fun:aes_encrypt_xmm_no_save
}

{
   OSX108:dyld-1
   Memcheck:Value8
   obj:/usr/lib/dyld
   obj:/usr/lib/dyld
   obj:/usr/lib/dyld
}

{
   OSX108:dyld-2
   Memcheck:Cond
   obj:/usr/lib/dyld
   obj:/usr/lib/dyld
   obj:/usr/lib/dyld
}

{
   OSX108:libxpc-1
   Memcheck:Cond
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
}

{
   OSX108:libxpc-2
   Memcheck:Value8
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
}

{
   OSX108:libxpc-3
   Memcheck:Cond
   fun:malloc
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
   obj:/usr/lib/system/libxpc.dylib
}

{
   OSX108:libdispatch-1
   Memcheck:Value8
   obj:/usr/lib/system/libdispatch.dylib
   obj:/usr/lib/system/libdispatch.dylib
   obj:/usr/lib/system/libdispatch.dylib
   obj:/usr/lib/system/libdispatch.dylib
}

{
   OSX108:ColorSync-1
   Memcheck:Cond
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
}

{
   OSX108:ColorSync-2
   Memcheck:Value8
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
   obj:*Frameworks/ColorSync.framework/Versions/A/ColorSync
}

{
   OSX108:mach_msg/mach_msg_trap
   Memcheck:Param
   mach_msg("rcv_name")
   fun:mach_msg_trap
}

{
   OSX108:my_io_execute_passive_block/libdispatch
   Memcheck:Cond
   fun:my_io_execute_passive_block
   obj:/usr/lib/system/libdispatch.dylib
   obj:/usr/lib/system/libdispatch.dylib
}

{
   OSX108:CFRunLoopAddSource/AppKit
   Memcheck:Cond
   fun:CFRunLoopAddSource
   obj:*Frameworks/AppKit.framework/Versions/C/AppKit
   obj:*Frameworks/AppKit.framework/Versions/C/AppKit
}

{
   OSX108:CoreFoundation/HIToolbox/HIToolbox
   Memcheck:Cond
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*HIToolbox.framework/Versions/A/HIToolbox
   obj:*HIToolbox.framework/Versions/A/HIToolbox
}

{
   OSX108:libsystem_kernel/CoreGraphics-1
   Memcheck:Cond
   obj:/usr/lib/system/libsystem_kernel.dylib
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
}

{
   OSX108:libsystem_kernel/CoreGraphics-2
   Memcheck:Param
   msg->desc.port.name
   obj:/usr/lib/system/libsystem_kernel.dylib
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
}

{
   OSX108:libsystem_kernel/CoreFoundation/CoreFoundation/LaunchServices
   Memcheck:Cond
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*LaunchServices.framework/Versions/A/LaunchServices
}

{
   OSX108:CoreFoundation/AE/AE
   Memcheck:Cond
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*AE.framework/Versions/A/AE
   obj:*AE.framework/Versions/A/AE
}

{
   OSX108:CoreGraphics/CoreGraphics/CoreGraphics
   Memcheck:Param
   msg->desc.port.name
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
   obj:*CoreGraphics.framework/Versions/A/CoreGraphics
}

{
   OSX108:CoreFoundation/Foundation/AppKit
   Memcheck:Cond
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*Foundation.framework/Versions/C/Foundation
   obj:*Frameworks/AppKit.framework/Versions/C/AppKit
}

{
   OSX108:CoreFoundation/CoreFoundation/HIToolbox
   Memcheck:Cond
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*CoreFoundation.framework/Versions/A/CoreFoundation
   obj:*HIToolbox.framework/Versions/A/HIToolbox
}

{
   OSX108:HIServices/HIToolbox/HIToolbox
   Memcheck:Cond
   obj:*HIServices.framework/Versions/A/HIServices
   obj:*HIToolbox.framework/Versions/A/HIToolbox
   obj:*HIToolbox.framework/Versions/A/HIToolbox
}

{
   OSX108:AppKit-1
   Memcheck:Cond
   obj:*AppKit.framework/Versions/C/AppKit
   obj:*AppKit.framework/Versions/C/AppKit
   obj:*AppKit.framework/Versions/C/AppKit
}

#########################################################
## Leaks (apparently) in even hello-world style programs

{
   OSX108:leak-1
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc_zone_malloc
   fun:_ZN4objc8DenseMapIP11objc_objectmL*
   fun:arr_init
}

{
   OSX108:leak-2
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:*NX*Map*
   fun:*NX*Map*
}

{
   OSX108:leak-3
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:*NX*Map*
   fun:*image*
}

{
   OSX108:leak-4
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:*NX*Map*
   fun:*remap*
}

{
   OSX108:leak-5
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:*NX*Map*
   fun:*future*
}

{
   OSX108:leak-6
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:*strdup*
   fun:*NX*Map*
}

{
   OSX108:leak-7
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:*NX*Map*
   fun:*attached*
}

{
   OSX108:leak-8
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:*NX*Map*
   fun:dlopen
}

{
   OSX108:leak-9
   Memcheck:Leak
   fun:malloc
   fun:*PerThread*
   fun:dlopen
}

{
   OSX108:leak-10
   Memcheck:Leak
   fun:malloc_zone_calloc
   fun:*NX*Hash*
}

{
   OSX108:leak-11
   Memcheck:Leak
   fun:malloc_zone_calloc
   fun:*map*
   fun:*map*
}

{
   OSX108:leak-12
   Memcheck:Leak
   fun:malloc_zone_calloc
   fun:*fetch_pthread_data*
}

{
   OSX108:leak-13
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:recursive_mutex_init
   fun:_objc_init
}

##----------------------------------------------------------------------##
# Memcheck
##----------------------------------------------------------------------##

