From aac53ad4d6eafda84ca92196a62e75e96e5fad25 Mon Sep 17 00:00:00 2001 From: Peter Klausler Date: Fri, 18 Apr 2025 12:52:04 -0700 Subject: [flang] Don't perform macro replacement on exponents (#136176) See new test. I inadvertently broke this behavior with a recent fix for another problem, because the effects of the overloaded TokenSequence::Put() member function on token merging were confusing. Rename and document the various overloads. --- flang/lib/Parser/token-sequence.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'flang/lib/Parser/token-sequence.cpp') diff --git a/flang/lib/Parser/token-sequence.cpp b/flang/lib/Parser/token-sequence.cpp index c0655f6..aee7693 100644 --- a/flang/lib/Parser/token-sequence.cpp +++ b/flang/lib/Parser/token-sequence.cpp @@ -96,7 +96,7 @@ bool TokenSequence::IsAnythingLeft(std::size_t at) const { return false; } -void TokenSequence::Put(const TokenSequence &that) { +void TokenSequence::CopyAll(const TokenSequence &that) { if (nextStart_ < char_.size()) { start_.push_back(nextStart_); } @@ -109,7 +109,8 @@ void TokenSequence::Put(const TokenSequence &that) { provenances_.Put(that.provenances_); } -void TokenSequence::Put(const TokenSequence &that, ProvenanceRange range) { +void TokenSequence::CopyWithProvenance( + const TokenSequence &that, ProvenanceRange range) { std::size_t offset{0}; std::size_t tokens{that.SizeInTokens()}; for (std::size_t j{0}; j < tokens; ++j) { @@ -120,7 +121,7 @@ void TokenSequence::Put(const TokenSequence &that, ProvenanceRange range) { CHECK(offset == range.size()); } -void TokenSequence::Put( +void TokenSequence::AppendRange( const TokenSequence &that, std::size_t at, std::size_t tokens) { ProvenanceRange provenance; std::size_t offset{0}; @@ -246,7 +247,7 @@ TokenSequence &TokenSequence::RemoveBlanks(std::size_t firstChar) { TokenSequence result; for (std::size_t j{0}; j < tokens; ++j) { if (!TokenAt(j).IsBlank() || start_[j] < firstChar) { - result.Put(*this, j); + result.AppendRange(*this, j); } } swap(result); @@ -260,7 +261,7 @@ TokenSequence &TokenSequence::RemoveRedundantBlanks(std::size_t firstChar) { for (std::size_t j{0}; j < tokens; ++j) { bool isBlank{TokenAt(j).IsBlank()}; if (!isBlank || !lastWasBlank || start_[j] < firstChar) { - result.Put(*this, j); + result.AppendRange(*this, j); } lastWasBlank = isBlank; } @@ -294,7 +295,7 @@ TokenSequence &TokenSequence::ClipComment( } else { TokenSequence result; if (j > 0) { - result.Put(*this, 0, j - 1); + result.AppendRange(*this, 0, j - 1); } swap(result); return *this; -- cgit v1.1