aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Parser/token-sequence.cpp
diff options
context:
space:
mode:
authorpeter klausler <pklausler@nvidia.com>2021-09-15 15:46:43 -0700
committerpeter klausler <pklausler@nvidia.com>2021-09-17 10:59:17 -0700
commitf6ddfac401b8a5dfbf7623ebd8800df5184fa244 (patch)
tree49042fd46537e1acd8376b124e7fa99f76796736 /flang/lib/Parser/token-sequence.cpp
parent101c3de39fbcdd7d47b25aaf6d972e435f017077 (diff)
downloadllvm-f6ddfac401b8a5dfbf7623ebd8800df5184fa244.zip
llvm-f6ddfac401b8a5dfbf7623ebd8800df5184fa244.tar.gz
llvm-f6ddfac401b8a5dfbf7623ebd8800df5184fa244.tar.bz2
[flang] Enforce fixed form rules about END continuation
From subclause 6.3.3.5: a program unit END statement cannot be continued in fixed form, and other statements cannot have initial lines that look like program unit END statements. I think this is to avoid violating assumptions that are important to legacy compilers' statement classification routines. Differential Revision: https://reviews.llvm.org/D109933
Diffstat (limited to 'flang/lib/Parser/token-sequence.cpp')
-rw-r--r--flang/lib/Parser/token-sequence.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/flang/lib/Parser/token-sequence.cpp b/flang/lib/Parser/token-sequence.cpp
index 0a959f2..3ed9d05 100644
--- a/flang/lib/Parser/token-sequence.cpp
+++ b/flang/lib/Parser/token-sequence.cpp
@@ -286,10 +286,14 @@ llvm::raw_ostream &TokenSequence::Dump(llvm::raw_ostream &o) const {
return o;
}
+Provenance TokenSequence::GetCharProvenance(std::size_t offset) const {
+ ProvenanceRange range{provenances_.Map(offset)};
+ return range.start();
+}
+
Provenance TokenSequence::GetTokenProvenance(
std::size_t token, std::size_t offset) const {
- ProvenanceRange range{provenances_.Map(start_[token] + offset)};
- return range.start();
+ return GetCharProvenance(start_[token] + offset);
}
ProvenanceRange TokenSequence::GetTokenProvenanceRange(