From 1f7f5b83f6f2eb843e8501ffbf6b8f6a4dd2a566 Mon Sep 17 00:00:00 2001 From: Shubham Verma Date: Fri, 2 Feb 2024 16:11:46 -0500 Subject: [PATCH] Treat contiguousArrayDataAddrFieldSymbol as Int64 dataAddr field width is always 64 bit so treating it as TR::Address results in null being loaded from top 32 bits in compressed refs. We need the symbol to be TR::Int64 for it be loaded correctly. Signed-off-by: Shubham Verma --- compiler/compile/OMRSymbolReferenceTable.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/compile/OMRSymbolReferenceTable.cpp b/compiler/compile/OMRSymbolReferenceTable.cpp index 9e6bef037b7..fc5d1cc0cf4 100644 --- a/compiler/compile/OMRSymbolReferenceTable.cpp +++ b/compiler/compile/OMRSymbolReferenceTable.cpp @@ -157,7 +157,7 @@ OMR::SymbolReferenceTable::findOrCreateContiguousArrayDataAddrFieldShadowSymRef( { if (!element(contiguousArrayDataAddrFieldSymbol)) { - TR::Symbol * sym = TR::Symbol::createShadow(trHeapMemory(), TR::Address); + TR::Symbol * sym = TR::Symbol::createShadow(trHeapMemory(), TR::Int64); sym->setContiguousArrayDataAddrFieldSymbol(); element(contiguousArrayDataAddrFieldSymbol) = new (trHeapMemory()) TR::SymbolReference(self(), contiguousArrayDataAddrFieldSymbol, sym); element(contiguousArrayDataAddrFieldSymbol)->setOffset(TR::Compiler->om.offsetOfContiguousDataAddrField());