aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Parser/token-sequence.cpp
diff options
context:
space:
mode:
authorPeter Klausler <pklausler@nvidia.com>2023-02-08 10:25:44 -0800
committerPeter Klausler <pklausler@nvidia.com>2023-02-13 07:34:55 -0800
commit95526930da6c00f6f12816d1f99bdf99980c387f (patch)
tree84220dce7b688e825810ed09f0b0773f22ce9f62 /flang/lib/Parser/token-sequence.cpp
parentbbff77a14ef2e36a7fda9e0bda3c256be503865a (diff)
downloadllvm-95526930da6c00f6f12816d1f99bdf99980c387f.zip
llvm-95526930da6c00f6f12816d1f99bdf99980c387f.tar.gz
llvm-95526930da6c00f6f12816d1f99bdf99980c387f.tar.bz2
[flang] Fix new assertion failure
Don't compute the address of element [0] of a vector when the vector is empty, even if the address is not used. Differential Revision: https://reviews.llvm.org/D143824
Diffstat (limited to 'flang/lib/Parser/token-sequence.cpp')
-rw-r--r--flang/lib/Parser/token-sequence.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/flang/lib/Parser/token-sequence.cpp b/flang/lib/Parser/token-sequence.cpp
index 55217a9..a3b97d3 100644
--- a/flang/lib/Parser/token-sequence.cpp
+++ b/flang/lib/Parser/token-sequence.cpp
@@ -264,8 +264,10 @@ TokenSequence &TokenSequence::ClipComment(bool skipFirst) {
}
void TokenSequence::Emit(CookedSource &cooked) const {
- cooked.Put(&char_[0], char_.size());
- cooked.PutProvenanceMappings(provenances_);
+ if (auto n{char_.size()}) {
+ cooked.Put(&char_[0], n);
+ cooked.PutProvenanceMappings(provenances_);
+ }
}
llvm::raw_ostream &TokenSequence::Dump(llvm::raw_ostream &o) const {