ART: Redo verification on field resolution failure

When compile-time verifying a field PUT and the field cannot be resolved,
the verification must be redone at runtime to ensure the field is not
final. Post an ACCESS_FIELD error.

An example is

  dex file A:
    class A {
      {
         B b = new B();
         B.final_field = 12345; // illegally modify final-after-new
       }
    }

  dex file B:
    class B {
      final int final_field = 0;
    }

when A is compiled without B.

Bug: 34966607
Bug: 64681719
Test: m test-art-host
Test: cts-tradefed run commandAndExit cts --m vm-tests-tf
Change-Id: Ibc14b003288f7acf3c865fcdef54a6d9ed4ac867
1 file changed