diff options
| author | Andreas Gampe <agampe@google.com> | 2019-07-11 16:40:37 -0700 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-07-11 16:40:37 -0700 |
| commit | f5909a423da9962a40a8a8897c708b4c6d78f6ac (patch) | |
| tree | 7e015521b706acdcedf5404f8e2f936e12b74cc4 | |
| parent | 4a7649a702f9dca277feb67bd4530243f9b48443 (diff) | |
| parent | 3b5f5c0b7454c025d18ead04a823afc03c2b6bc6 (diff) | |
ART: Remove VERIFY_ERROR_UNRESOLVED_CATCH am: 0d87f99907
am: 3b5f5c0b74
Change-Id: Ifd9b885a91c445c81ff4902d05919a2bf5bc3e1b
| -rw-r--r-- | runtime/verifier/method_verifier.cc | 7 | ||||
| -rw-r--r-- | runtime/verifier/verifier_enums.h | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc index 02b1cbd1f33..8d9176a84db 100644 --- a/runtime/verifier/method_verifier.cc +++ b/runtime/verifier/method_verifier.cc @@ -3829,12 +3829,13 @@ bool MethodVerifier<kVerifierDebug>::HandleMoveException(const Instruction* inst // We need to post a failure. The compiler currently does not handle unreachable // code correctly. - Fail(VERIFY_ERROR_UNRESOLVED_CATCH) << "Unresolved catch handler, fail for compiler"; + Fail(VERIFY_ERROR_SKIP_COMPILER, /*pending_exc=*/ false) + << "Unresolved catch handler, fail for compiler"; return std::make_pair(false, unresolved); } // Soft-fail, but do not handle this with a synthetic throw. - Fail(VERIFY_ERROR_UNRESOLVED_CATCH) << "Unresolved catch handler"; + Fail(VERIFY_ERROR_NO_CLASS, /*pending_exc=*/ false) << "Unresolved catch handler"; if (common_super != nullptr) { unresolved = &unresolved->Merge(*common_super, ®_types_, this); } @@ -5574,7 +5575,7 @@ std::ostream& MethodVerifier::Fail(VerifyError error, bool pending_exc) { break; } - case VERIFY_ERROR_UNRESOLVED_CATCH: + case VERIFY_ERROR_SKIP_COMPILER: // Nothing to do, just remember the failure type. break; } diff --git a/runtime/verifier/verifier_enums.h b/runtime/verifier/verifier_enums.h index 0e968828f56..b445e944a9e 100644 --- a/runtime/verifier/verifier_enums.h +++ b/runtime/verifier/verifier_enums.h @@ -94,9 +94,11 @@ enum VerifyError : uint32_t { // (sets a soft fail at compile time). VERIFY_ERROR_LOCKING = 1 << 11, // Could not guarantee balanced locking. This should be // punted to the interpreter with access checks. - VERIFY_ERROR_UNRESOLVED_CATCH = 1 << 12, // Error code necessary to have a synthetic soft fail - // that is not an exception, to let the compiler know - // that there is (unreachable) unverified code. + VERIFY_ERROR_SKIP_COMPILER = 1u << 31, // Flag to note that the failure should preclude + // optimization. Meant as a signal from the verifier + // to the compiler that there is unreachable unverified + // code. May be removed once the compiler handles + // unreachable code correctly. }; std::ostream& operator<<(std::ostream& os, const VerifyError& rhs); |
