Read and write constraints for clinit
For clinits executed during pre-compile within a transaction, they are
constrained to only be able to access their own static fields because
the results of iniitialization relying on static fields, either read or
write, of other classes are runtiime determined.
Further discussion can be found at b/62887449.
When SGET and SPUT series instructions are executed, interpreter will
check whether fields are static and does the target match with the
transaction owner, if not, abort transaction and throw an exception.
Test: make test-art-host -j64
Bug: 62887449
Change-Id: I3e655269c8af5f0b3f2c1841fdd2602c827c2757
8 files changed