Home | History | Annotate | Download | only in valgrind
      1 # Suppressions for Android's libc (bionic) and probably other
      2 # stuff too.
      3 
      4 # this is a real bug in the Android stack -- this routine really does read and write below sp.
      5 {
      6    sha1_block_data_order-reads-below-sp
      7    Memcheck:Addr4
      8    fun:sha1_block_data_order
      9 }
     10 
     11 # This is a false error, and it's reported in the wrong place.  Memcheck misinterprets
     12 # a restore path in dvmPlatformInvoke: "ldmdb   r4, {r4, r5, r6, r7, r8, r9, sp, pc}"
     13 # because it breaks this up into non-atomic IR.  This non atomic IR restores PC
     14 # first, then SP, and then r4-r9; the latter of which happen after (from Memcheck's
     15 # point of view) the assignment to SP, hence constitute a read below SP (depends
     16 # which way SP moved, I guess).  Worse, because these happen after the restore to SP,
     17 # the errors are reported in the callers of this function, not here :-(
     18 # General bogusness all round, but I don't see how to handle it any better.  Hence
     19 # hide all the callers; fortunately there appear to be not many.
     20 #
     21 {
     22    dvmPlatformInvoke-misinterpretation-1
     23    Memcheck:Addr4
     24    fun:dvmCallJNIMethod_virtualNoRef
     25 }
     26 
     27 {
     28    dvmPlatformInvoke-misinterpretation-2
     29    Memcheck:Addr4
     30    fun:dvmCallJNIMethod_staticNoRef
     31 }
     32 
     33 {
     34    dvmPlatformInvoke-misinterpretation-3
     35    Memcheck:Addr4
     36    fun:dvmCallJNIMethod_general
     37 }
     38