af2ec43d44
Unreachable code can contain LoadIndex/StoreIndex instructions
which take result of AllocateObject as input. For example:
v5 <- AllocateObject:18(cls=MapEntry, v4, <not-aliased>) T{MapEntry}
...
v33 <- InstanceOf:14(v5 IS String, instantiator_type_args(v0), function_type_args(v0)) T{bool}
Branch if StrictCompare:18(===, v33, v3) goto (15, 21)
B15[target]:22
CheckClass:24(v5 Cids[1: _OneByteString@0150898 etc. cid 82])
...
v51 <- LoadIndexed(v5, v49) [0, 255] T{_Smi}
This assertion was added recently in
https://dart-review.googlesource.com/c/sdk/+/198406.
TEST=vm/dart/regress_46798_test
Fixes https://github.com/dart-lang/sdk/issues/46798
Change-Id: I9d8627768c9f477b187f2b67d70f0a9fc7d952be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210180
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>