From: Julian Seward Date: Mon, 26 Sep 2011 20:18:29 +0000 (+0000) Subject: Initial suppressions from Android 2.3.5 (on ARM). X-Git-Tag: svn/VALGRIND_3_7_0~184 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf10526128f1f559b075b844ec89eb1059b45815;p=thirdparty%2Fvalgrind.git Initial suppressions from Android 2.3.5 (on ARM). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12053 --- diff --git a/bionic.supp b/bionic.supp index a6ce68405c..0d56253f6d 100644 --- a/bionic.supp +++ b/bionic.supp @@ -1,4 +1,37 @@ # Suppressions for Android's libc (bionic) and probably other # stuff too. -# This is currently empty. +# 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 +}