diff --git a/flang/lib/Semantics/pointer-assignment.cpp b/flang/lib/Semantics/pointer-assignment.cpp --- a/flang/lib/Semantics/pointer-assignment.cpp +++ b/flang/lib/Semantics/pointer-assignment.cpp @@ -315,7 +315,8 @@ "Target type %s is not compatible with pointer type %s"_err_en_US, rhsType->type().AsFortran(), lhsType_->type().AsFortran()}; - } else if (!isBoundsRemapping_) { + } else if (!isBoundsRemapping_ && + !lhsType_->attrs().test(TypeAndShape::Attr::AssumedRank)) { int lhsRank{evaluate::GetRank(lhsType_->shape())}; int rhsRank{evaluate::GetRank(rhsType->shape())}; if (lhsRank != rhsRank) {