8214275: CondyRepeatFailedResolution asserts "Dynamic constant has no fixed basic type"

GenerateOopMap::do_ldc must check for a DynamicInError as well as a Dynamic constant pool tag.

Reviewed-by: coleenp
This commit is contained in:
Lois Foltan 2018-12-06 10:46:10 -05:00
parent eee1a6fab0
commit 99bcec08b1

View File

@ -1879,7 +1879,7 @@ void GenerateOopMap::do_ldc(int bci) {
constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references
BasicType bt = ldc.result_type();
#ifdef ASSERT
BasicType tag_bt = tag.is_dynamic_constant() ? bt : tag.basic_type();
BasicType tag_bt = (tag.is_dynamic_constant() || tag.is_dynamic_constant_in_error()) ? bt : tag.basic_type();
assert(bt == tag_bt, "same result");
#endif
CellTypeState cts;