From eb83262bec2591c9067e5027a2778293b6acc336 Mon Sep 17 00:00:00 2001 From: Fred Chow Date: Thu, 29 Apr 2021 17:03:27 -0700 Subject: [PATCH] check aliases for actual parameters of intrinsiccalls Included dumping typeattrs field in MIRArrayType::Dump() Include dchecking typeattrs field in MIRArrayType::EqualTo() --- src/mapleall/maple_ir/src/mir_type.cpp | 3 ++- src/mapleall/maple_me/src/alias_class.cpp | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mapleall/maple_ir/src/mir_type.cpp b/src/mapleall/maple_ir/src/mir_type.cpp index 4b28e02631..d257ab741f 100644 --- a/src/mapleall/maple_ir/src/mir_type.cpp +++ b/src/mapleall/maple_ir/src/mir_type.cpp @@ -574,6 +574,7 @@ void MIRArrayType::Dump(int indent, bool dontUseName) const { } LogInfo::MapleLogger() << " "; GlobalTables::GetTypeTable().GetTypeFromTyIdx(eTyIdx)->Dump(indent + 1); + GetTypeAttrs().DumpAttributes(); LogInfo::MapleLogger() << ">"; } @@ -1254,7 +1255,7 @@ bool MIRArrayType::EqualTo(const MIRType &type) const { return false; } const auto &pType = static_cast(type); - if (dim != pType.GetDim() || eTyIdx != pType.GetElemTyIdx()) { + if (dim != pType.GetDim() || eTyIdx != pType.GetElemTyIdx() || typeAttrs != pType.GetTypeAttrs()) { return false; } for (size_t i = 0; i < dim; ++i) { diff --git a/src/mapleall/maple_me/src/alias_class.cpp b/src/mapleall/maple_me/src/alias_class.cpp index fa0aeb1082..7f1f11f1b3 100644 --- a/src/mapleall/maple_me/src/alias_class.cpp +++ b/src/mapleall/maple_me/src/alias_class.cpp @@ -1588,6 +1588,8 @@ void AliasClass::InsertMayDefUseIntrncall(StmtNode &stmt, BBId bbid) { for (uint32 i = 0; i < stmt.NumOpnds(); ++i) { InsertMayUseExpr(*stmt.Opnd(i)); } + } else { + CollectMayUseForCallOpnd(stmt, mayDefUseOsts); } // 2. collect mayDefs and mayUses caused by not_all_defs_seen_ae CollectMayUseFromNADS(mayDefUseOsts); -- Gitee