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