From 99bcec08b12fc747a0cb7be862cf71b627e05892 Mon Sep 17 00:00:00 2001 From: Lois Foltan Date: Thu, 6 Dec 2018 10:46:10 -0500 Subject: [PATCH] 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 --- src/hotspot/share/oops/generateOopMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hotspot/share/oops/generateOopMap.cpp b/src/hotspot/share/oops/generateOopMap.cpp index 8a53e7a0095..edb9c106d42 100644 --- a/src/hotspot/share/oops/generateOopMap.cpp +++ b/src/hotspot/share/oops/generateOopMap.cpp @@ -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;