[flang-commits] [flang] 9552693 - [flang] Fix new assertion failure

Peter Klausler via flang-commits flang-commits at lists.llvm.org
Mon Feb 13 07:35:24 PST 2023


Author: Peter Klausler
Date: 2023-02-13T07:34:55-08:00
New Revision: 95526930da6c00f6f12816d1f99bdf99980c387f

URL: https://github.com/llvm/llvm-project/commit/95526930da6c00f6f12816d1f99bdf99980c387f
DIFF: https://github.com/llvm/llvm-project/commit/95526930da6c00f6f12816d1f99bdf99980c387f.diff

LOG: [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

Added: 
    

Modified: 
    flang/lib/Parser/token-sequence.cpp

Removed: 
    


################################################################################
diff  --git a/flang/lib/Parser/token-sequence.cpp b/flang/lib/Parser/token-sequence.cpp
index 55217a95dfb9d..a3b97d32fa229 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 {


        


More information about the flang-commits mailing list