diff options
author | Mark Doffman <mark.doffman@codethink.co.uk> | 2014-12-04 16:08:50 +0000 |
---|---|---|
committer | Mark Doffman <mark.doffman@codethink.co.uk> | 2014-12-04 16:08:50 +0000 |
commit | 6052953bdf7c7a9542042212c235ae9d404eef02 (patch) | |
tree | b7bd7aff57baefcc6dc8997c11bf4c52492fb316 | |
parent | d8c478c1147996984ade8e9b6d7c7f6d02d13afc (diff) | |
download | flang-6052953bdf7c7a9542042212c235ae9d404eef02.tar.gz |
Fix some diagnostic code breakage.
Broken in LLVM 3.6 update.
-rw-r--r-- | include/flang/Basic/Diagnostic.h | 20 | ||||
-rw-r--r-- | lib/Basic/DiagnosticIDs.cpp | 2 |
2 files changed, 6 insertions, 16 deletions
diff --git a/include/flang/Basic/Diagnostic.h b/include/flang/Basic/Diagnostic.h index 4b5ef11937..a16c55bc48 100644 --- a/include/flang/Basic/Diagnostic.h +++ b/include/flang/Basic/Diagnostic.h @@ -377,13 +377,7 @@ private: /// \brief The list of ranges added to this diagnostic. SourceRange DiagRanges[MaxRanges]; - /// \brief If valid, provides a hint with some code to insert, remove, - /// or modify at a particular position. - struct FixIt : FixItHint { - FixIt() : FixItHint(SourceLocation(),"") {} - FixIt(const FixItHint &Hint) : FixItHint(Hint) {} - }; - FixIt DiagFixItHints[MaxFixItHints]; + SmallVector<FixItHint, 10> DiagFixItHints; DiagnosticMappingInfo makeMappingInfo(diag::Mapping Map, SourceLocation L) { bool isPragma = L.isValid(); @@ -596,10 +590,7 @@ public: } void AddFixItHint(const FixItHint &Hint) const { - assert(isActive() && "Clients must not add to cleared diagnostic!"); - assert(NumFixits < DiagnosticsEngine::MaxFixItHints && - "Too many arguments to diagnostic!"); - DiagObj->DiagFixItHints[NumFixits++] = Hint; + DiagObj->DiagFixItHints.push_back(Hint); } bool hasMaxRanges() const { @@ -768,13 +759,12 @@ public: return DiagObj->NumDiagFixItHints; } - const FixItHint &getFixItHint(unsigned Idx) const { - assert(Idx < getNumFixItHints() && "Invalid index!"); + const ArrayRef<FixItHint> getFixItHint(unsigned Idx) const { return DiagObj->DiagFixItHints[Idx]; } - const FixItHint *getFixItHints() const { - return getNumFixItHints()? DiagObj->DiagFixItHints : 0; + const ArrayRef<FixItHint> getFixItHints() const { + return DiagObj->DiagFixItHints; } /// \brief Format this diagnostic into a string, substituting the diff --git a/lib/Basic/DiagnosticIDs.cpp b/lib/Basic/DiagnosticIDs.cpp index c89bca2b1d..e3987c4799 100644 --- a/lib/Basic/DiagnosticIDs.cpp +++ b/lib/Basic/DiagnosticIDs.cpp @@ -664,7 +664,7 @@ void DiagnosticIDs::EmitDiag(DiagnosticsEngine &Diag, Level DiagLevel) const { } Diag.Client->HandleDiagnostic(Lvl, Info.getLocation(), llvm::Twine(OutStr), llvm::ArrayRef<SourceRange>(Diag.DiagRanges,Diag.NumDiagRanges), - llvm::ArrayRef<FixItHint>(Diag.DiagFixItHints,Diag.NumDiagFixItHints)); + Diag.DiagFixItHints); Diag.CurDiagID = ~0U; } |