| The situations in these tests were discovered by running the mutating |
| dexfuzz on the DEX files of fuzzingly random generated Java test. |
| |
| (A) b/28908555: |
| soft verification failure (on the final field modification) should |
| not hide the hard verification failure (on the type mismatch) to |
| avoid compiler crash later on |
| (B) b/29070461: |
| hard verification failure (not calling super in constructor) should |
| bail immediately and not allow soft verification failures to pile up |
| behind it to avoid fatal message later on |
| (C) b/29068831: |
| access validation on field should occur prior to null reference check |
| (D) b/29126870: |
| soft verification failure (cannot access) should not hide the hard |
| verification failure (non-reference type) to avoid a compiler crash |
| later on |
| (E) b/29068831: |
| access validation on method should occur prior to null reference check |
| (F) b/29758098: |
| new-instance of java.lang.Class should throw an IllegalAccessError to |
| avoid interpreter crash on zero size object later |
| |