8214275: CondyRepeatFailedResolution asserts "Dynamic constant has no fixed basic type"
Summary: GenerateOopMap::do_ldc must check for a DynamicInError as well as a Dynamic constant pool tag.
Reviewed-by: coleenp
--- a/src/hotspot/share/oops/generateOopMap.cpp Thu Dec 06 10:22:23 2018 -0500
+++ b/src/hotspot/share/oops/generateOopMap.cpp Thu Dec 06 10:46:10 2018 -0500
@@ -1879,7 +1879,7 @@
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;