sewardj | a9b1e65 | 2011-07-11 20:52:10 +0000 | [diff] [blame] | 1 | # Suppressions for Android's libc (bionic) and probably other |
| 2 | # stuff too. |
| 3 | |
sewardj | a518fb6 | 2011-09-26 20:18:29 +0000 | [diff] [blame] | 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 | } |