diff --git a/src/mapleall/maple_ir/src/mir_function.cpp b/src/mapleall/maple_ir/src/mir_function.cpp index 02aaefedc36988396ad02d8279c1b96a58f2f5c5..cd879143e384edf93983d6e3d52955aae4b8ad54 100644 --- a/src/mapleall/maple_ir/src/mir_function.cpp +++ b/src/mapleall/maple_ir/src/mir_function.cpp @@ -486,9 +486,11 @@ void MIRFunction::SetBaseClassFuncNames(GStrIdx strIdx) { std::string funcNameWithType = name.substr(pos + width, name.length() - pos - width); baseFuncWithTypeStrIdx = GlobalTables::GetStrTable().GetOrCreateStrIdxFromName(funcNameWithType); size_t index = name.find(namemangler::kRightBracketStr); - ASSERT(index != std::string::npos, "Invalid name, cannot find '_29' in name"); - size_t posEnd = index + (std::string(namemangler::kRightBracketStr)).length(); - funcNameWithType = name.substr(pos + width, posEnd - pos - width); + if (index != std::string::npos) { + size_t posEnd = index + (std::string(namemangler::kRightBracketStr)).length(); + funcNameWithType = name.substr(pos + width, posEnd - pos - width); + } + baseFuncSigStrIdx = GlobalTables::GetStrTable().GetOrCreateStrIdxFromName(funcNameWithType); size_t newPos = name.find(delimiter, pos + width); while (newPos != std::string::npos && (name[newPos - 1] == '_' && name[newPos - 2] != '_')) { newPos = name.find(delimiter, newPos + width);