diff --git a/src/mapleall/maple_me/src/orig_symbol.cpp b/src/mapleall/maple_me/src/orig_symbol.cpp index ee6bab28ffbf98cdfa4d27e0e6f2587812f520e4..c060c888421c27994f4ede9c6109223d54a8495c 100644 --- a/src/mapleall/maple_me/src/orig_symbol.cpp +++ b/src/mapleall/maple_me/src/orig_symbol.cpp @@ -267,7 +267,8 @@ OriginalSt *OriginalStTable::FindOrCreateExtraLevOriginalSt(OriginalSt *ost, TyI OriginalSt *OriginalStTable::FindExtraLevOriginalSt(const MapleVector &nextLevelOsts, MIRType *type, FieldID fld, const OffsetType &offset) { for (OriginalSt *nextLevelOst : nextLevelOsts) { - if (nextLevelOst->GetOffset() == offset && nextLevelOst->GetType() == type) { + if (nextLevelOst->GetOffset().IsInvalid() || + (nextLevelOst->GetOffset() == offset && nextLevelOst->GetType() == type)) { if (nextLevelOst->GetFieldID() == fld || fld == 0) { return nextLevelOst; }