43af470c08
FinalizeGraph pass removes redefinitions and can change reachable types of values. As a result, type of an input value of Unbox instruction can become incompatibe with representation of the result of Unbox, even if Unbox cannot deoptimize (this may happen if the instruction is unreachable). Previously, code generation failed with an assertion in that case. This change adjusts code generation to silently generate load from box instead. TEST=runtime/tests/vm/dart/regress_48196_test.dart Fixes https://github.com/dart-lang/sdk/issues/48196 Change-Id: I35f80a1b3135687901cd1b57c0e5572d29c4d2e0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230341 Reviewed-by: Ryan Macnak <rmacnak@google.com> Reviewed-by: Slava Egorov <vegorov@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>