From f6a8db289e5366845f9518fce7a98538017e9570 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Fri, 7 Mar 2025 19:19:03 +0000 Subject: [PATCH] 8348261: assert(n->is_Mem()) failed: memory node required Reviewed-by: chagedorn, epeter --- src/hotspot/share/opto/escape.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/hotspot/share/opto/escape.cpp b/src/hotspot/share/opto/escape.cpp index 068a2c0b100..23cf8a67be7 100644 --- a/src/hotspot/share/opto/escape.cpp +++ b/src/hotspot/share/opto/escape.cpp @@ -4712,13 +4712,21 @@ void ConnectionGraph::split_unique_types(GrowableArray &alloc_worklist, if (n == nullptr) { continue; } + } else if (n->Opcode() == Op_StrInflatedCopy) { + // Check direct uses of StrInflatedCopy. + // It is memory type Node - no special SCMemProj node. } else if (n->Opcode() == Op_StrCompressedCopy || n->Opcode() == Op_EncodeISOArray) { // get the memory projection n = n->find_out_with(Op_SCMemProj); assert(n != nullptr && n->Opcode() == Op_SCMemProj, "memory projection required"); } else { +#ifdef ASSERT + if (!n->is_Mem()) { + n->dump(); + } assert(n->is_Mem(), "memory node required."); +#endif Node *addr = n->in(MemNode::Address); const Type *addr_t = igvn->type(addr); if (addr_t == Type::TOP) {