diff --git a/src/mapleall/maple_be/src/cg/rematerialize.cpp b/src/mapleall/maple_be/src/cg/rematerialize.cpp index a9db0a12cc54c2ed0e5938bde0b29bb40fb83a1b..17387a930c44417323a5d078c90f7f26534dba85 100644 --- a/src/mapleall/maple_be/src/cg/rematerialize.cpp +++ b/src/mapleall/maple_be/src/cg/rematerialize.cpp @@ -138,7 +138,7 @@ std::vector Rematerializer::Rematerialize(CGFunc &cgFunc, RegOperand ® const MIRSymbol *symbol = rematInfo.sym; int32 offset = 0; if (fieldID != 0) { - ASSERT(symbol->GetType()->IsMIRStructType(), "non-zero fieldID for non-structure"); + ASSERT(symbol->GetType()->IsMIRStructType() || symbol->GetType()->IsMIRUnionType(), "non-zero fieldID for non-structure"); MIRStructType *structType = static_cast(symbol->GetType()); offset = cgFunc.GetBecommon().GetFieldOffset(*structType, fieldID).first; } @@ -151,4 +151,4 @@ std::vector Rematerializer::Rematerialize(CGFunc &cgFunc, RegOperand ® return std::vector(); } -} /* namespace maplebe */ \ No newline at end of file +} /* namespace maplebe */