diff options
Diffstat (limited to 'flang/lib/Semantics/resolve-names-utils.cpp')
-rw-r--r-- | flang/lib/Semantics/resolve-names-utils.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/flang/lib/Semantics/resolve-names-utils.cpp b/flang/lib/Semantics/resolve-names-utils.cpp index 5564570..d6f0302 100644 --- a/flang/lib/Semantics/resolve-names-utils.cpp +++ b/flang/lib/Semantics/resolve-names-utils.cpp @@ -365,7 +365,8 @@ void EquivalenceSets::AddToSet(const parser::Designator &designator) { } } auto substringStart{currObject_.substringStart}; - currSet_.emplace_back(symbol, subscripts, substringStart); + currSet_.emplace_back( + symbol, subscripts, substringStart, designator.source); PropagateSaveAttr(currSet_.back(), currSet_); } currObject_ = {}; @@ -446,16 +447,7 @@ void EquivalenceSets::MergeInto(const parser::CharBlock &source, EquivalenceSet &dst{sets_[dstIndex]}; PropagateSaveAttr(dst, src); for (const auto &obj : src) { - if (const auto *obj2{Find(dst, obj.symbol)}) { - if (obj == *obj2) { - continue; // already there - } - context_.Say(source, - "'%s' and '%s' cannot have the same first storage unit"_err_en_US, - obj2->AsFortran(), obj.AsFortran()); - } else { - dst.push_back(obj); - } + dst.push_back(obj); objectToSet_[obj] = dstIndex; } PropagateSaveAttr(src, dst); |