8214275: CondyRepeatFailedResolution asserts "Dynamic constant has no fixed basic type"
authorlfoltan
Thu, 06 Dec 2018 10:46:10 -0500
changeset 52881 dfdc025ad9ea
parent 52880 c56c30f9f991
child 52882 8b8935b5cfd4
child 52883 094d91e25943
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
src/hotspot/share/oops/generateOopMap.cpp
--- 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;