# Suppressions for Android's libc (bionic) and probably other
# stuff too.

{
  bionic_dlopen
  Memcheck:Addr4
  fun:__dl_strlen
  ...
  fun:__dl_find_library
  fun:__dl_dlopen
}

{
  bionic_dlopen_c
  Memcheck:Cond
  fun:__dl_strlen
  ...
  fun:__dl_find_library
  fun:__dl_dlopen
}

# this is a real bug in the Android stack -- this routine really does read and write below sp.
{
   sha1_block_data_order-reads-below-sp
   Memcheck:Addr4
   fun:sha1_block_data_order
}

# This is a false error, and it's reported in the wrong place.  Memcheck misinterprets
# a restore path in dvmPlatformInvoke: "ldmdb   r4, {r4, r5, r6, r7, r8, r9, sp, pc}"
# because it breaks this up into non-atomic IR.  This non atomic IR restores PC
# first, then SP, and then r4-r9; the latter of which happen after (from Memcheck's
# point of view) the assignment to SP, hence constitute a read below SP (depends
# which way SP moved, I guess).  Worse, because these happen after the restore to SP,
# the errors are reported in the callers of this function, not here :-(
# General bogusness all round, but I don't see how to handle it any better.  Hence
# hide all the callers; fortunately there appear to be not many.
#
{
   dvmPlatformInvoke-misinterpretation-1
   Memcheck:Addr4
   fun:dvmCallJNIMethod_virtualNoRef
}

{
   dvmPlatformInvoke-misinterpretation-2
   Memcheck:Addr4
   fun:dvmCallJNIMethod_staticNoRef
}

{
   dvmPlatformInvoke-misinterpretation-3
   Memcheck:Addr4
   fun:dvmCallJNIMethod_general
}
