[libunwind] r321446 - [libunwind] Unbreak debug builds after r321440.
whitequark via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 25 12:04:47 PST 2017
Author: whitequark
Date: Mon Dec 25 12:04:47 2017
New Revision: 321446
URL: http://llvm.org/viewvc/llvm-project?rev=321446&view=rev
Log:
[libunwind] Unbreak debug builds after r321440.
Modified:
libunwind/trunk/src/DwarfParser.hpp
Modified: libunwind/trunk/src/DwarfParser.hpp
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/DwarfParser.hpp?rev=321446&r1=321445&r2=321446&view=diff
==============================================================================
--- libunwind/trunk/src/DwarfParser.hpp (original)
+++ libunwind/trunk/src/DwarfParser.hpp Mon Dec 25 12:04:47 2017
@@ -17,7 +17,6 @@
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
-#include <limits.h>
#include "libunwind.h"
#include "dwarf2.h"
@@ -26,6 +25,10 @@
namespace libunwind {
+// Avoid relying on C++ headers.
+template <class T>
+static constexpr T pint_max_value() { return ~0; }
+
/// CFI_Parser does basic parsing of a CFI (Call Frame Information) records.
/// See DWARF Spec for details:
/// http://refspecs.linuxbase.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html
@@ -540,7 +543,7 @@ bool CFI_Parser<A>::parseInstructions(A
results->cfaRegister = 0;
results->cfaExpression = (int64_t)p;
length = addressSpace.getULEB128(p, instructionsEnd);
- assert(length < std::numeric_limits<pint_t>::max() && "pointer overflow");
+ assert(length < pint_max_value<pint_t>() && "pointer overflow");
p += static_cast<pint_t>(length);
_LIBUNWIND_TRACE_DWARF("DW_CFA_def_cfa_expression(expression=0x%" PRIx64
", length=%" PRIu64 ")\n",
@@ -556,7 +559,7 @@ bool CFI_Parser<A>::parseInstructions(A
results->savedRegisters[reg].location = kRegisterAtExpression;
results->savedRegisters[reg].value = (int64_t)p;
length = addressSpace.getULEB128(p, instructionsEnd);
- assert(length < std::numeric_limits<pint_t>::max() && "pointer overflow");
+ assert(length < pint_max_value<pint_t>() && "pointer overflow");
p += static_cast<pint_t>(length);
_LIBUNWIND_TRACE_DWARF("DW_CFA_expression(reg=%" PRIu64 ", "
"expression=0x%" PRIx64 ", "
@@ -642,7 +645,7 @@ bool CFI_Parser<A>::parseInstructions(A
results->savedRegisters[reg].location = kRegisterIsExpression;
results->savedRegisters[reg].value = (int64_t)p;
length = addressSpace.getULEB128(p, instructionsEnd);
- assert(length < std::numeric_limits<pint_t>::max() && "pointer overflow");
+ assert(length < pint_max_value<pint_t>() && "pointer overflow");
p += static_cast<pint_t>(length);
_LIBUNWIND_TRACE_DWARF("DW_CFA_val_expression(reg=%" PRIu64 ", "
"expression=0x%" PRIx64 ", length=%" PRIu64 ")\n",
More information about the cfe-commits
mailing list