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