Commit bd402fc3 authored by James Henderson's avatar James Henderson
Browse files

[DebugInfo][NFC] Use function_ref consistently in debug line parsing

This patch fixes an inconsistency where we were using std::function in
some places and function_ref in others to pass around the error handling
callback.

Reviewed by: MaskRay

Differential Revision: https://reviews.llvm.org/D71762
parent 546c72a7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -298,7 +298,7 @@ public:
  /// Report any recoverable parsing problems using the callback.
  Expected<const DWARFDebugLine::LineTable *>
  getLineTableForUnit(DWARFUnit *U,
                      std::function<void(Error)> RecoverableErrorCallback);
                      function_ref<void(Error)> RecoverableErrorCallback);

  DataExtractor getStringExtractor() const {
    return DataExtractor(DObj->getStrSection(), false, 0);
+8 −9
Original line number Diff line number Diff line
@@ -280,10 +280,9 @@ public:
    void clear();

    /// Parse prologue and all rows.
    Error parse(
        DWARFDataExtractor &DebugLineData, uint64_t *OffsetPtr,
    Error parse(DWARFDataExtractor &DebugLineData, uint64_t *OffsetPtr,
                const DWARFContext &Ctx, const DWARFUnit *U,
        std::function<void(Error)> RecoverableErrorCallback,
                function_ref<void(Error)> RecoverableErrorCallback,
                raw_ostream *OS = nullptr);

    using RowVector = std::vector<Row>;
@@ -309,10 +308,10 @@ public:
  };

  const LineTable *getLineTable(uint64_t Offset) const;
  Expected<const LineTable *> getOrParseLineTable(
      DWARFDataExtractor &DebugLineData, uint64_t Offset,
  Expected<const LineTable *>
  getOrParseLineTable(DWARFDataExtractor &DebugLineData, uint64_t Offset,
                      const DWARFContext &Ctx, const DWARFUnit *U,
      std::function<void(Error)> RecoverableErrorCallback);
                      function_ref<void(Error)> RecoverableErrorCallback);

  /// Helper to allow for parsing of an entire .debug_line section in sequence.
  class SectionParser {
+1 −1
Original line number Diff line number Diff line
@@ -874,7 +874,7 @@ DWARFContext::getLineTableForUnit(DWARFUnit *U) {
}

Expected<const DWARFDebugLine::LineTable *> DWARFContext::getLineTableForUnit(
    DWARFUnit *U, std::function<void(Error)> RecoverableErrorCallback) {
    DWARFUnit *U, function_ref<void(Error)> RecoverableErrorCallback) {
  if (!Line)
    Line.reset(new DWARFDebugLine);

+2 −2
Original line number Diff line number Diff line
@@ -514,7 +514,7 @@ DWARFDebugLine::getLineTable(uint64_t Offset) const {

Expected<const DWARFDebugLine::LineTable *> DWARFDebugLine::getOrParseLineTable(
    DWARFDataExtractor &DebugLineData, uint64_t Offset, const DWARFContext &Ctx,
    const DWARFUnit *U, std::function<void(Error)> RecoverableErrorCallback) {
    const DWARFUnit *U, function_ref<void(Error)> RecoverableErrorCallback) {
  if (!DebugLineData.isValidOffset(Offset))
    return createStringError(errc::invalid_argument, "offset 0x%8.8" PRIx64
                       " is not a valid debug line section offset",
@@ -535,7 +535,7 @@ Expected<const DWARFDebugLine::LineTable *> DWARFDebugLine::getOrParseLineTable(
Error DWARFDebugLine::LineTable::parse(
    DWARFDataExtractor &DebugLineData, uint64_t *OffsetPtr,
    const DWARFContext &Ctx, const DWARFUnit *U,
    std::function<void(Error)> RecoverableErrorCallback, raw_ostream *OS) {
    function_ref<void(Error)> RecoverableErrorCallback, raw_ostream *OS) {
  const uint64_t DebugLineOffset = *OffsetPtr;

  clear();