From b867921eb88d38b3e015714f8826c5d617948726 Mon Sep 17 00:00:00 2001 From: peter klausler Date: Wed, 2 May 2018 10:02:00 -0700 Subject: [PATCH] [flang] Clean up message output a little; remove unused APIs. Original-commit: flang-compiler/f18@64298b8d74478684c77d3d18282e8a47a0186a97 Reviewed-on: https://github.com/flang-compiler/f18/pull/81 Tree-same-pre-rewrite: false --- flang/lib/parser/message.cc | 21 +++++++++++++++------ flang/lib/parser/message.h | 9 ++------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/flang/lib/parser/message.cc b/flang/lib/parser/message.cc index 2ce89f0..abaf4f7 100644 --- a/flang/lib/parser/message.cc +++ b/flang/lib/parser/message.cc @@ -102,13 +102,23 @@ std::string Message::ToString() const { return s; } -ProvenanceRange Message::Emit( - std::ostream &o, const CookedSource &cooked, bool echoSourceLine) const { - ProvenanceRange provenanceRange{provenanceRange_}; +ProvenanceRange Message::GetProvenance(const CookedSource &cooked) const { if (cookedSourceRange_.begin() != nullptr) { - provenanceRange = cooked.GetProvenance(cookedSourceRange_); + return cooked.GetProvenance(cookedSourceRange_); + } + return provenanceRange_; +} + +void Message::Emit( + std::ostream &o, const CookedSource &cooked, bool echoSourceLine) const { + ProvenanceRange provenanceRange{GetProvenance(cooked)}; + bool doIdentify{true}; + if (context_) { + bool sameProvenance{provenanceRange == context_->GetProvenance(cooked)}; + context_->Emit(o, cooked, echoSourceLine && sameProvenance); + doIdentify = !sameProvenance; } - if (!context_ || context_->Emit(o, cooked, false) != provenanceRange) { + if (doIdentify) { cooked.allSources().Identify(o, provenanceRange, "", echoSourceLine); } o << " "; @@ -116,7 +126,6 @@ ProvenanceRange Message::Emit( o << "ERROR: "; } o << ToString() << '\n'; - return provenanceRange; } void Messages::Incorporate(Messages &that) { diff --git a/flang/lib/parser/message.h b/flang/lib/parser/message.h index 4a0492b..04ba03d 100644 --- a/flang/lib/parser/message.h +++ b/flang/lib/parser/message.h @@ -141,12 +141,6 @@ public: } } - ProvenanceRange provenanceRange() const { return provenanceRange_; } - Provenance provenance() const { return provenanceRange_.start(); } - CharBlock cookedSourceRange() const { return cookedSourceRange_; } - const char *cookedSourceLocation() const { - return cookedSourceRange_.begin(); - } Context context() const { return context_; } Message &set_context(Message *c) { context_ = c; @@ -156,7 +150,8 @@ public: void Incorporate(Message &); std::string ToString() const; - ProvenanceRange Emit( + ProvenanceRange GetProvenance(const CookedSource &) const; + void Emit( std::ostream &, const CookedSource &, bool echoSourceLine = true) const; private: -- 2.7.4