ART: Remove VERIFY_ERROR_UNRESOLVED_CATCH
Replace with a more generic SKIP_COMPILER, mark the Fail() calls as not
throwing, and replace the standard occurrence with NO_CLASS.
Bug: 121245951
Test: m test-art-host
Test: art/test/testrunner/testrunner.py -b --host -t 800 --jit-on-first-use
Change-Id: I9f601702f27d815840538c04b332a52bf1c58c54
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index 02b1cbd..8d9176a 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -3829,12 +3829,13 @@
// 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 @@
break;
}
- case VERIFY_ERROR_UNRESOLVED_CATCH:
+ case VERIFY_ERROR_SKIP_COMPILER:
// Nothing to do, just remember the failure type.
break;
}