diff --git a/src/mapleall/maple_me/src/orig_symbol.cpp b/src/mapleall/maple_me/src/orig_symbol.cpp index 4e30ce78b3735441e95a777a41eca5b6edcba778..40482bd1316626dc09eaf057995c3b583b792491 100644 --- a/src/mapleall/maple_me/src/orig_symbol.cpp +++ b/src/mapleall/maple_me/src/orig_symbol.cpp @@ -204,6 +204,9 @@ OriginalSt *OriginalStTable::FindOrCreateExtraLevSymOrRegOriginalSt(OriginalSt * if (mirType->GetKind() == kTypePointer) { const auto *ptType = static_cast(mirType); typeOfExtraLevOst = GlobalTables::GetTypeTable().GetTypeFromTyIdx(ptType->GetPointedTyIdxWithFieldID(fld)); + if (typeOfExtraLevOst == nullptr) { + typeOfExtraLevOst = ptType->GetPointedType(); + } if (fld <= ptType->NumberOfFieldIDs()) { offsetOfNextLevOst = offset + ptType->GetPointedType()->GetBitOffsetFromBaseAddr(fld); }