diff options
author | Peter Klausler <pklausler@nvidia.com> | 2025-04-18 12:52:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-18 12:52:04 -0700 |
commit | aac53ad4d6eafda84ca92196a62e75e96e5fad25 (patch) | |
tree | b2a456cb437424c37d9c519c9998f074bc429296 /flang/lib/Parser/token-sequence.cpp | |
parent | 544940846d5b99831307595b82818b2b4aba6377 (diff) | |
download | llvm-aac53ad4d6eafda84ca92196a62e75e96e5fad25.zip llvm-aac53ad4d6eafda84ca92196a62e75e96e5fad25.tar.gz llvm-aac53ad4d6eafda84ca92196a62e75e96e5fad25.tar.bz2 |
[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.
Diffstat (limited to 'flang/lib/Parser/token-sequence.cpp')
-rw-r--r-- | flang/lib/Parser/token-sequence.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
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; |