
# Suppressions for Darwin 13.x / Mac OS X 10.9 Mavericks

############################################
## Leaks.  For other stuff see below.

{
   OSX109:1-Leak
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc_zone_?alloc
   ...
   fun:_read_images
}

{
   OSX109:2-Leak
   Memcheck:Leak
   match-leak-kinds: definite
   fun:?alloc
   ...
   fun:_ZN4dyld24initializeMainExecutableEv
}

{
   OSX109:3-Leak
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc_zone_?alloc
   fun:recursive_mutex_init
   fun:_objc_init
   fun:_os_object_init
   fun:libSystem_initializer
   ...
}

{
   OSX109:4-Leak
   Memcheck:Leak
   match-leak-kinds: reachable
   fun:malloc_zone_?alloc
   ...
   fun:dyld_register_image_state_change_handler
   ...
}

{
   OSX109:5-Leak
   Memcheck:Leak
   match-leak-kinds: reachable
   fun:?alloc
   ...
   fun:dyld_register_image_state_change_handler
   ...
}

{
   OSX109:6-Leak
   Memcheck:Leak
   match-leak-kinds: reachable
   fun:malloc_zone_?alloc
   ...
   fun:map_images_nolock
   fun:map_images
   ...
}

{
   OSX109:7-Leak
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc_zone_?alloc
   ...
   fun:map_images_nolock
   fun:map_images
   ...
}

{
   OSX109:8-Leak
   Memcheck:Leak
   match-leak-kinds: indirect
   fun:?alloc
   ...
   fun:libSystem_initializer
   ...
}

{
   OSX109:9-Leak
   Memcheck:Leak
   match-leak-kinds: reachable
   fun:malloc_zone_?alloc
   ...
   fun:libSystem_initializer
   ...
}

{
   OSX109:10-Leak
   Memcheck:Leak
   match-leak-kinds: reachable
   fun:?alloc
   ...
   fun:libSystem_initializer
   ...
}

############################################
## Non-leak errors

{
   OSX109:AppKit-1
   Memcheck:Cond
   obj:*AppKit.framework*AppKit*
   obj:*AppKit.framework*AppKit*
   obj:*AppKit.framework*AppKit*
}

{
   OSX109:AppKit-2
   Memcheck:Cond
   obj:*AppKit.framework*AppKit*
   obj:*AppKit.framework*AppKit*
   obj:*libdispatch.dylib*
}

{
   OSX109:AppKit-3
   Memcheck:Cond
   obj:*AppKit.framework*AppKit*
   obj:*libdispatch.dylib*
   obj:*libdispatch.dylib*
}

{
   OSX109:ColorSync-1
   Memcheck:Cond
   obj:*ColorSync.framework*ColorSync*
   obj:*ColorSync.framework*ColorSync*
   obj:*ColorSync.framework*ColorSync*
}

{
   OSX109:ColorSync-2
   Memcheck:Value8
   obj:*ColorSync.framework*ColorSync*
   obj:*ColorSync.framework*ColorSync*
   obj:*ColorSync.framework*ColorSync*
}

{
   OSX109:CoreGraphics-1
   Memcheck:Cond
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*CoreGraphics.framework*CoreGraphics*
}

{
   OSX109:CoreGraphics-2
   Memcheck:Value8
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*CoreGraphics.framework*CoreGraphics*
}

{
   OSX109:CoreGraphics-3
   Memcheck:Cond
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*CoreGraphics.framework*libRIP*
   obj:*CoreGraphics.framework*libRIP*
}

{
   OSX109:CoreGraphics-4
   Memcheck:Cond
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*CoreGraphics.framework*libRIP*
}

{
   OSX109:CoreGraphics-5
   Memcheck:Cond
   obj:*CoreGraphics.framework*CoreGraphics*
   obj:*libdispatch.dylib*
   obj:*libdispatch.dylib*
}

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

{
   OSX109:HIServices-1
   Memcheck:Cond
   obj:*HIServices.framework*HIServices*
   obj:*HIToolbox.framework*HIToolbox*
   obj:*HIToolbox.framework*HIToolbox*
}

{  
   OSX109:LaunchServices-1
   Memcheck:Cond
   obj:*LaunchServices.framework*LaunchServices*
   obj:*AppKit.framework*AppKit*
   obj:*AppKit.framework*AppKit*
}

{
   OSX109:QuartzCore-1
   Memcheck:Cond
   obj:*QuartzCore.framework*QuartzCore
   obj:*QuartzCore.framework*QuartzCore
   obj:*QuartzCore.framework*QuartzCore
}

{
   OSX109:vImage-1
   Memcheck:Cond
   obj:*vImage.framework*vImage*
   obj:*vImage.framework*vImage*
   obj:*CoreGraphics.framework*CoreGraphics*
}

{
   OSX109:zlib-C
   Memcheck:Cond
   obj:/usr/lib/libz.*dylib
   obj:/usr/lib/libz.*dylib
}
{
   OSX109:zlib-8
   Memcheck:Value8
   obj:/usr/lib/libz.*dylib
   obj:/usr/lib/libz.*dylib
}
