OSDN Git Service

An argument is handled incorrectly for add-int/lit8 during optimization phase
authornikolay serdjuk <nikolay.y.serdjuk@intel.com>
Tue, 25 Mar 2014 05:21:29 +0000 (12:21 +0700)
committernikolay serdjuk <nikolay.y.serdjuk@intel.com>
Tue, 25 Mar 2014 05:21:29 +0000 (12:21 +0700)
commitee40aa4650d7d000335ccfcb2fbb742acfb1f1c3
treec22a662c63f4a81fbf0d761c6c386d02041c59e0
parent89ff4f99ae477758b8e2300dc1a9cb828ed3a53c
An argument is handled incorrectly for add-int/lit8 during optimization phase

Dalvik instruction 'add-int/lit8' stores a constant in the third parameter.
But during optimization phase the compiler reads the constant from the
second parameter. This is incorrect because it leads to wrong decision that
no array bound checks are needed in our test case. As a consequence it
fails with SIGSEGV because of accessing elements which are beyond the bounds.

Change-Id: I653892514934046d31a9e4d206d9d95ebb6267ab
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>
compiler/dex/local_value_numbering.cc