summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-12-20 19:13:19 -0800
committerGitHub <noreply@github.com>2019-12-20 19:13:19 -0800
commit3f6fd583ca283c12f05c1258962cebdd2202e949 (patch)
tree72b7c4f75c0763cf43379ff571b0710cdda1b543
parentc97d6e4f529f181d81f1fc8c76f0ce28c16782b8 (diff)
downloadbinaryen-3f6fd583ca283c12f05c1258962cebdd2202e949.tar.gz
binaryen-3f6fd583ca283c12f05c1258962cebdd2202e949.tar.bz2
binaryen-3f6fd583ca283c12f05c1258962cebdd2202e949.zip
DWARF debug line updating (#2545)
With this, we can update DWARF debug line info properly as we write a new binary. To do that we track binary locations as we write. Each instruction is mapped to the location it is written to. We must also adjust them as we move code around because of LEB optimization (we emit a function or a section with a 5-byte LEB placeholder, the maximal size; later we shrink it which is almost always possible). writeDWARFSections() now takes a second param, the new locations of instructions. It then maps debug line info from the original offsets in the binary to the new offsets in the binary being written. The core logic for updating the debug line section is in wasm-debug.cpp. It basically tracks state machine logic both to read the existing debug lines and to emit the new ones. I couldn't find a way to reuse LLVM code for this, but reading LLVM's code was very useful here. A final tricky thing we need to do is to update the DWARF section's internal size annotation. The LLVM YAML writing code doesn't do that for us. Luckily it's pretty easy, in fixEmittedSection we just update the first 4 bytes in place to have the section size, after we've emitted it and know the size. This ignores debug lines with a 0 in the line, col, or addr, see WebAssembly/debugging#9 (comment) This ignores debug line offsets into the middle of instructions, which LLVM sometimes emits for some reason, see WebAssembly/debugging#9 (comment) Handling that would likely at least double our memory usage, which is unfortunate - we are run in an LTO manner, where the entire app's DWARF is present, and it may be massive. I think we should see if such odd offsets are a bug in LLVM, and if we can fix or prevent that. This does not emit "special" opcodes for debug lines. Those are purely an optimization, which I wanted to leave for later. (Even without them we decrease the size quite a lot, btw, as many lines have 0s in them...) This adds some testing that shows we can load and save fib2.c and fannkuch.cpp properly. The latter includes more than one function and has nontrivial code. To actually emit correct offsets a few minor fixes are done here: * Fix the code section location tracking during reading - the correct offset we care about is the body of the code section, not including the section declaration and size. * Fix wasm-stack debug line emitting. We need to update in BinaryInstWriter::visit(), that is, right before writing bytes for the instruction. That differs from * BinaryenIRWriter::visit which is a recursive function that also calls the children - so the offset there would be of the first child. For some reason that is correct with source maps, I don't understand why, but it's wrong for DWARF... * Print code section offsets in hex, to match other tools. Remove DWARFUpdate pass, which was useful for testing temporarily, but doesn't make sense now (it just updates without writing a binary). cc @yurydelendik
-rw-r--r--src/passes/DWARF.cpp8
-rw-r--r--src/passes/Print.cpp3
-rw-r--r--src/passes/RoundTrip.cpp2
-rw-r--r--src/passes/pass.cpp2
-rw-r--r--src/passes/passes.h1
-rw-r--r--src/wasm-binary.h13
-rw-r--r--src/wasm-debug.h2
-rw-r--r--src/wasm-stack.h18
-rw-r--r--src/wasm.h7
-rw-r--r--src/wasm/wasm-binary.cpp80
-rw-r--r--src/wasm/wasm-debug.cpp316
-rw-r--r--test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt23
-rw-r--r--test/passes/dwarfupdate.bin.txt36
-rw-r--r--test/passes/dwarfupdate.wasmbin843 -> 0 bytes
-rw-r--r--test/passes/fannkuch3.bin.txt6100
-rw-r--r--test/passes/fannkuch3.passes1
-rw-r--r--test/passes/fannkuch3.wasmbin0 -> 5916 bytes
-rw-r--r--test/passes/fib2.bin.txt360
-rw-r--r--test/passes/fib2.passes1
-rw-r--r--test/passes/fib2.wasmbin0 -> 932 bytes
-rw-r--r--test/passes/print_g.bin.txt144
-rw-r--r--third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h2
22 files changed, 6946 insertions, 173 deletions
diff --git a/src/passes/DWARF.cpp b/src/passes/DWARF.cpp
index fe595adae..bc2af3292 100644
--- a/src/passes/DWARF.cpp
+++ b/src/passes/DWARF.cpp
@@ -35,14 +35,6 @@ struct DWARFDump : public Pass {
}
};
-struct DWARFUpdate : public Pass {
- void run(PassRunner* runner, Module* module) override {
- Debug::writeDWARFSections(*module);
- }
-};
-
Pass* createDWARFDumpPass() { return new DWARFDump(); }
-Pass* createDWARFUpdatePass() { return new DWARFUpdate(); }
-
} // namespace wasm
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index cbf3c5a24..3bad8f960 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -1427,7 +1427,8 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> {
auto iter = currFunction->binaryLocations.find(curr);
if (iter != currFunction->binaryLocations.end()) {
Colors::grey(o);
- o << ";; code offset: 0x" << iter->second << '\n';
+ o << ";; code offset: 0x" << std::hex << iter->second << std::dec
+ << '\n';
restoreNormalColor(o);
doIndent(o, indent);
}
diff --git a/src/passes/RoundTrip.cpp b/src/passes/RoundTrip.cpp
index 0afabed9e..5410ad87b 100644
--- a/src/passes/RoundTrip.cpp
+++ b/src/passes/RoundTrip.cpp
@@ -57,7 +57,7 @@ struct RoundTrip : public Pass {
// Read
ModuleUtils::clearModule(*module);
ModuleReader reader;
- // TODO: enable debug info when relevant
+ reader.setDWARF(runner->options.debugInfo);
reader.read(tempName, *module);
// Clean up
std::remove(tempName.c_str());
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index cbc8e3be9..ac4f6b661 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -110,8 +110,6 @@ void PassRegistry::registerPasses() {
registerPass("dwarfdump",
"dump DWARF debug info sections from the read binary",
createDWARFDumpPass);
- registerPass(
- "dwarfupdate", "update DWARF debug info sections", createDWARFUpdatePass);
registerPass("duplicate-import-elimination",
"removes duplicate imports",
createDuplicateImportEliminationPass);
diff --git a/src/passes/passes.h b/src/passes/passes.h
index 2f30441db..df5601d2f 100644
--- a/src/passes/passes.h
+++ b/src/passes/passes.h
@@ -36,7 +36,6 @@ Pass* createDataFlowOptsPass();
Pass* createDeadCodeEliminationPass();
Pass* createDirectizePass();
Pass* createDWARFDumpPass();
-Pass* createDWARFUpdatePass();
Pass* createDuplicateImportEliminationPass();
Pass* createDuplicateFunctionEliminationPass();
Pass* createEmitTargetFeaturesPass();
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 1c3a430fc..4206defdf 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -1044,6 +1044,19 @@ private:
std::unique_ptr<ImportInfo> importInfo;
+ // General debugging info: map every instruction to its original position in
+ // the binary, relative to the beginning of the code section. This is similar
+ // to binaryLocations on Function objects, which are filled as we load the
+ // functions from the binary. Here we track them as we write, and then
+ // the combination of the two can be used to update DWARF info for the new
+ // locations of things.
+ BinaryLocationsMap binaryLocations;
+ size_t binaryLocationsSizeAtSectionStart;
+ // Track the expressions that we added for the current function being
+ // written, so that we can update those specific binary locations when
+ // the function is written out.
+ std::vector<Expression*> binaryLocationTrackedExpressionsForFunc;
+
void prepare();
};
diff --git a/src/wasm-debug.h b/src/wasm-debug.h
index d2e4840f1..1020eee85 100644
--- a/src/wasm-debug.h
+++ b/src/wasm-debug.h
@@ -37,7 +37,7 @@ bool hasDWARFSections(const Module& wasm);
void dumpDWARF(const Module& wasm);
// Update the DWARF sections.
-void writeDWARFSections(Module& wasm);
+void writeDWARFSections(Module& wasm, const BinaryLocationsMap& newLocations);
} // namespace Debug
diff --git a/src/wasm-stack.h b/src/wasm-stack.h
index 7564fbcdb..fbd28b0d5 100644
--- a/src/wasm-stack.h
+++ b/src/wasm-stack.h
@@ -83,8 +83,16 @@ class BinaryInstWriter : public OverriddenVisitor<BinaryInstWriter> {
public:
BinaryInstWriter(WasmBinaryWriter& parent,
BufferWithRandomAccess& o,
- Function* func)
- : parent(parent), o(o), func(func) {}
+ Function* func,
+ bool sourceMap)
+ : parent(parent), o(o), func(func), sourceMap(sourceMap) {}
+
+ void visit(Expression* curr) {
+ if (func && !sourceMap) {
+ parent.writeDebugLocation(curr, func);
+ }
+ OverriddenVisitor<BinaryInstWriter>::visit(curr);
+ }
void visitBlock(Block* curr);
void visitIf(If* curr);
@@ -144,6 +152,8 @@ private:
WasmBinaryWriter& parent;
BufferWithRandomAccess& o;
Function* func = nullptr;
+ bool sourceMap;
+
std::vector<Name> breakStack;
// type => number of locals of that type in the compact form
@@ -758,7 +768,7 @@ public:
Function* func = nullptr,
bool sourceMap = false)
: BinaryenIRWriter<BinaryenIRToBinaryWriter>(func), parent(parent),
- writer(parent, o, func), sourceMap(sourceMap) {}
+ writer(parent, o, func, sourceMap), sourceMap(sourceMap) {}
void visit(Expression* curr) {
BinaryenIRWriter<BinaryenIRToBinaryWriter>::visit(curr);
@@ -833,7 +843,7 @@ public:
StackIRToBinaryWriter(WasmBinaryWriter& parent,
BufferWithRandomAccess& o,
Function* func)
- : writer(parent, o, func), func(func) {}
+ : writer(parent, o, func, false /* sourceMap */), func(func) {}
void write();
diff --git a/src/wasm.h b/src/wasm.h
index bfa0c8947..4c8c4d444 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1129,7 +1129,10 @@ struct Importable {
// Stack IR is a secondary IR to the main IR defined in this file (Binaryen
// IR). See wasm-stack.h.
class StackInst;
-typedef std::vector<StackInst*> StackIR;
+
+using StackIR = std::vector<StackInst*>;
+
+using BinaryLocationsMap = std::unordered_map<Expression*, uint32_t>;
class Function : public Importable {
public:
@@ -1178,7 +1181,7 @@ public:
// General debugging info: map every instruction to its original position in
// the binary, relative to the beginning of the code section.
- std::unordered_map<Expression*, uint32_t> binaryLocations;
+ BinaryLocationsMap binaryLocations;
size_t getNumParams();
size_t getNumVars();
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index 71dd0fc21..fa90532d9 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -72,6 +72,14 @@ void WasmBinaryWriter::write() {
writeSourceMapEpilog();
}
+#ifdef BUILD_LLVM_DWARF
+ // Update DWARF user sections after writing the data referred to by them
+ // (function bodies), and before writing the user sections themselves.
+ if (Debug::hasDWARFSections(*wasm)) {
+ Debug::writeDWARFSections(*wasm, binaryLocations);
+ }
+#endif
+
writeLateUserSections();
writeFeaturesSection();
@@ -109,6 +117,7 @@ template<typename T> int32_t WasmBinaryWriter::startSection(T code) {
if (sourceMap) {
sourceMapLocationsSizeAtSectionStart = sourceMapLocations.size();
}
+ binaryLocationsSizeAtSectionStart = binaryLocations.size();
return writeU32LEBPlaceholder(); // section size to be filled in later
}
@@ -116,22 +125,44 @@ void WasmBinaryWriter::finishSection(int32_t start) {
// section size does not include the reserved bytes of the size field itself
int32_t size = o.size() - start - MaxLEB32Bytes;
auto sizeFieldSize = o.writeAt(start, U32LEB(size));
- if (sizeFieldSize != MaxLEB32Bytes) {
+ // We can move things back if the actual LEB for the size doesn't use the
+ // maximum 5 bytes. In that case we need to adjust offsets after we move
+ // things backwards.
+ auto adjustmentForLEBShrinking = MaxLEB32Bytes - sizeFieldSize;
+ if (adjustmentForLEBShrinking) {
// we can save some room, nice
assert(sizeFieldSize < MaxLEB32Bytes);
std::move(&o[start] + MaxLEB32Bytes,
&o[start] + MaxLEB32Bytes + size,
&o[start] + sizeFieldSize);
- auto adjustment = MaxLEB32Bytes - sizeFieldSize;
- o.resize(o.size() - adjustment);
+ o.resize(o.size() - adjustmentForLEBShrinking);
if (sourceMap) {
for (auto i = sourceMapLocationsSizeAtSectionStart;
i < sourceMapLocations.size();
++i) {
- sourceMapLocations[i].first -= adjustment;
+ sourceMapLocations[i].first -= adjustmentForLEBShrinking;
}
}
}
+
+ if (binaryLocationsSizeAtSectionStart != binaryLocations.size()) {
+ // We added the binary locations, adjust them: they must be relative
+ // to the code section.
+ assert(binaryLocationsSizeAtSectionStart == 0);
+ // The section type byte is right before the LEB for the size; we want
+ // offsets that are relative to the body, which is after that section type
+ // byte and the the size LEB.
+ auto body = start + sizeFieldSize;
+ for (auto& pair : binaryLocations) {
+ // Offsets are relative to the body of the code section: after the
+ // section type byte and the size.
+ // Everything was moved by the adjustment, track that. After this,
+ // we are at the right absolute address.
+ pair.second -= adjustmentForLEBShrinking;
+ // We are relative to the section start.
+ pair.second -= body;
+ }
+ }
}
int32_t
@@ -266,6 +297,7 @@ void WasmBinaryWriter::writeFunctions() {
auto start = startSection(BinaryConsts::Section::Code);
o << U32LEB(importInfo->getNumDefinedFunctions());
ModuleUtils::iterDefinedFunctions(*wasm, [&](Function* func) {
+ assert(binaryLocationTrackedExpressionsForFunc.empty());
size_t sourceMapLocationsSizeAtFunctionStart = sourceMapLocations.size();
BYN_TRACE("write one at" << o.size() << std::endl);
size_t sizePos = writeU32LEBPlaceholder();
@@ -284,22 +316,31 @@ void WasmBinaryWriter::writeFunctions() {
BYN_TRACE("body size: " << size << ", writing at " << sizePos
<< ", next starts at " << o.size() << "\n");
auto sizeFieldSize = o.writeAt(sizePos, U32LEB(size));
- if (sizeFieldSize != MaxLEB32Bytes) {
+ // We can move things back if the actual LEB for the size doesn't use the
+ // maximum 5 bytes. In that case we need to adjust offsets after we move
+ // things backwards.
+ auto adjustmentForLEBShrinking = MaxLEB32Bytes - sizeFieldSize;
+ if (adjustmentForLEBShrinking) {
// we can save some room, nice
assert(sizeFieldSize < MaxLEB32Bytes);
std::move(&o[start], &o[start] + size, &o[sizePos] + sizeFieldSize);
- auto adjustment = MaxLEB32Bytes - sizeFieldSize;
- o.resize(o.size() - adjustment);
+ o.resize(o.size() - adjustmentForLEBShrinking);
if (sourceMap) {
for (auto i = sourceMapLocationsSizeAtFunctionStart;
i < sourceMapLocations.size();
++i) {
- sourceMapLocations[i].first -= adjustment;
+ sourceMapLocations[i].first -= adjustmentForLEBShrinking;
}
}
+ for (auto* curr : binaryLocationTrackedExpressionsForFunc) {
+ // We added the binary locations, adjust them: they must be relative
+ // to the code section.
+ binaryLocations[curr] -= adjustmentForLEBShrinking;
+ }
}
tableOfContents.functionBodies.emplace_back(
func->name, sizePos + sizeFieldSize, size);
+ binaryLocationTrackedExpressionsForFunc.clear();
});
finishSection(start);
}
@@ -649,10 +690,19 @@ void WasmBinaryWriter::writeDebugLocation(const Function::DebugLocation& loc) {
}
void WasmBinaryWriter::writeDebugLocation(Expression* curr, Function* func) {
- auto& debugLocations = func->debugLocations;
- auto iter = debugLocations.find(curr);
- if (iter != debugLocations.end()) {
- writeDebugLocation(iter->second);
+ if (sourceMap) {
+ auto& debugLocations = func->debugLocations;
+ auto iter = debugLocations.find(curr);
+ if (iter != debugLocations.end()) {
+ writeDebugLocation(iter->second);
+ }
+ }
+ // TODO: remove source map debugging support and refactor this method
+ // to something that directly thinks about DWARF, instead of indirectly
+ // looking at func->binaryLocations as a proxy for that etc.
+ if (func && !func->binaryLocations.empty()) {
+ binaryLocations[curr] = o.size();
+ binaryLocationTrackedExpressionsForFunc.push_back(curr);
}
}
@@ -809,6 +859,9 @@ void WasmBinaryBuilder::read() {
readFunctionSignatures();
break;
case BinaryConsts::Section::Code:
+ if (DWARF) {
+ codeSectionLocation = pos;
+ }
readFunctions();
break;
case BinaryConsts::Section::Export:
@@ -1288,9 +1341,6 @@ void WasmBinaryBuilder::readFunctionSignatures() {
void WasmBinaryBuilder::readFunctions() {
BYN_TRACE("== readFunctions\n");
- if (DWARF) {
- codeSectionLocation = pos;
- }
size_t total = getU32LEB();
if (total != functionSignatures.size()) {
throwError("invalid function section size, must equal types");
diff --git a/src/wasm/wasm-debug.cpp b/src/wasm/wasm-debug.cpp
index 595c7f50b..04dd4e9d3 100644
--- a/src/wasm/wasm-debug.cpp
+++ b/src/wasm/wasm-debug.cpp
@@ -25,6 +25,10 @@
std::error_code dwarf2yaml(llvm::DWARFContext& DCtx, llvm::DWARFYAML::Data& Y);
#endif
+#include "wasm-binary.h"
+#include "wasm-debug.h"
+#include "wasm.h"
+
namespace wasm {
namespace Debug {
@@ -99,26 +103,315 @@ void dumpDWARF(const Module& wasm) {
// StringMap<std::unique_ptr<MemoryBuffer>>
// EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups);
//
-// For modifying data, like line numberes, we can in theory do that either on
-// the DWARFContext or DWARFYAML::Data; unclear which is best, but modifying
-// the DWARFContext may save us doing fixups in EmitDebugSections.
-//
-void writeDWARFSections(Module& wasm) {
+// Represents the state when parsing a line table.
+struct LineState {
+ uint32_t addr = 0;
+ // TODO sectionIndex?
+ uint32_t line = 1;
+ uint32_t col = 0;
+ uint32_t file = 1;
+ // TODO uint32_t isa = 0;
+ // TODO Discriminator = 0;
+ bool isStmt;
+ bool basicBlock = false;
+ // XXX these two should be just prologue, epilogue?
+ bool prologueEnd = false;
+ bool epilogueBegin = false;
+
+ LineState(const LineState& other) = default;
+ LineState(const llvm::DWARFYAML::LineTable& table)
+ : isStmt(table.DefaultIsStmt) {}
+
+ LineState& operator=(const LineState& other) = default;
+
+ // Updates the state, and returns whether a new row is ready to be emitted.
+ bool update(llvm::DWARFYAML::LineTableOpcode& opcode,
+ const llvm::DWARFYAML::LineTable& table) {
+ switch (opcode.Opcode) {
+ case 0: {
+ // Extended opcodes
+ switch (opcode.SubOpcode) {
+ case llvm::dwarf::DW_LNE_set_address: {
+ addr = opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNE_end_sequence: {
+ return true;
+ }
+ default: {
+ Fatal() << "unknown debug line sub-opcode: " << std::hex
+ << opcode.SubOpcode;
+ }
+ }
+ break;
+ }
+ case llvm::dwarf::DW_LNS_set_column: {
+ col = opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_set_prologue_end: {
+ prologueEnd = true;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_copy: {
+ return true;
+ }
+ case llvm::dwarf::DW_LNS_advance_pc: {
+ assert(table.MinInstLength == 1);
+ addr += opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_advance_line: {
+ line += opcode.SData;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_set_file: {
+ file = opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_negate_stmt: {
+ isStmt = !isStmt;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_const_add_pc: {
+ uint8_t AdjustOpcode = 255 - table.OpcodeBase;
+ uint64_t AddrOffset =
+ (AdjustOpcode / table.LineRange) * table.MinInstLength;
+ addr += AddrOffset;
+ break;
+ }
+ default: {
+ if (opcode.Opcode >= table.OpcodeBase) {
+ // Special opcode: adjust line and addr, using some math.
+ uint8_t AdjustOpcode =
+ opcode.Opcode - table.OpcodeBase; // 20 - 13 = 7
+ uint64_t AddrOffset = (AdjustOpcode / table.LineRange) *
+ table.MinInstLength; // (7 / 14) * 1 = 0
+ int32_t LineOffset =
+ table.LineBase +
+ (AdjustOpcode % table.LineRange); // -5 + (7 % 14) = 2
+ line += LineOffset;
+ addr += AddrOffset;
+ return true;
+ } else {
+ Fatal() << "unknown debug line opcode: " << std::hex << opcode.Opcode;
+ }
+ }
+ }
+ return false;
+ }
+
+ bool needToEmit() {
+ // If any value is 0, can ignore it
+ // https://github.com/WebAssembly/debugging/issues/9#issuecomment-567720872
+ return line != 0 && col != 0 && addr != 0;
+ }
+
+ // Given an old state, emit the diff from it to this state into a new line
+ // table entry (that will be emitted in the updated DWARF debug line section).
+ void emitDiff(const LineState& old,
+ std::vector<llvm::DWARFYAML::LineTableOpcode>& newOpcodes,
+ const llvm::DWARFYAML::LineTable& table) {
+ bool useSpecial = false;
+ if (addr != old.addr || line != old.line) {
+ // Try to use a special opcode TODO
+ }
+ if (addr != old.addr && !useSpecial) {
+ // len = 1 (subopcode) + 4 (wasm32 address)
+ // FIXME: look at AddrSize on the Unit.
+ auto item = makeItem(llvm::dwarf::DW_LNE_set_address, 5);
+ item.Data = addr;
+ newOpcodes.push_back(item);
+ }
+ if (line != old.line && !useSpecial) {
+ auto item = makeItem(llvm::dwarf::DW_LNS_advance_line);
+ item.SData = line - old.line;
+ newOpcodes.push_back(item);
+ }
+ if (col != old.col) {
+ auto item = makeItem(llvm::dwarf::DW_LNS_set_column);
+ item.Data = col;
+ newOpcodes.push_back(item);
+ }
+ if (file != old.file) {
+ auto item = makeItem(llvm::dwarf::DW_LNS_set_file);
+ item.Data = file;
+ newOpcodes.push_back(item);
+ }
+ if (isStmt != old.isStmt) {
+ newOpcodes.push_back(makeItem(llvm::dwarf::DW_LNS_negate_stmt));
+ }
+ if (basicBlock != old.basicBlock) {
+ Fatal() << "bb";
+ }
+ if (prologueEnd != old.prologueEnd) {
+ assert(prologueEnd);
+ newOpcodes.push_back(makeItem(llvm::dwarf::DW_LNS_set_prologue_end));
+ }
+ if (epilogueBegin != old.epilogueBegin) {
+ Fatal() << "eb";
+ }
+ if (useSpecial) {
+ // Emit a special, which ends a sequence automatically.
+ // TODO
+ } else {
+ // End the sequence manually.
+ // len = 1 (subopcode)
+ newOpcodes.push_back(makeItem(llvm::dwarf::DW_LNE_end_sequence, 1));
+ // Reset the state.
+ *this = LineState(table);
+ }
+ }
+
+private:
+ llvm::DWARFYAML::LineTableOpcode makeItem(llvm::dwarf::LineNumberOps opcode) {
+ llvm::DWARFYAML::LineTableOpcode item = {};
+ item.Opcode = opcode;
+ return item;
+ }
+
+ llvm::DWARFYAML::LineTableOpcode
+ makeItem(llvm::dwarf::LineNumberExtendedOps opcode, uint64_t len) {
+ auto item = makeItem(llvm::dwarf::LineNumberOps(0));
+ // All the length after the len field itself, including the subopcode
+ // (1 byte).
+ item.ExtLen = len;
+ item.SubOpcode = opcode;
+ return item;
+ }
+};
+
+// Represents a mapping of addresses to expressions.
+struct AddrExprMap {
+ std::unordered_map<uint32_t, Expression*> map;
+
+ // Construct the map from the binaryLocations loaded from the wasm.
+ AddrExprMap(const Module& wasm) {
+ for (auto& func : wasm.functions) {
+ for (auto pair : func->binaryLocations) {
+ assert(map.count(pair.second) == 0);
+ map[pair.second] = pair.first;
+ }
+ }
+ }
+
+ // Construct the map from new binaryLocations just written
+ AddrExprMap(const BinaryLocationsMap& newLocations) {
+ for (auto pair : newLocations) {
+ assert(map.count(pair.second) == 0);
+ map[pair.second] = pair.first;
+ }
+ }
+
+ Expression* get(uint32_t addr) {
+ auto iter = map.find(addr);
+ if (iter != map.end()) {
+ return iter->second;
+ }
+ return nullptr;
+ }
+
+ void dump() {
+ std::cout << " (size: " << map.size() << ")\n";
+ for (auto pair : map) {
+ std::cout << " " << pair.first << " => " << pair.second << '\n';
+ }
+ }
+};
+
+static void updateDebugLines(const Module& wasm,
+ llvm::DWARFYAML::Data& data,
+ const BinaryLocationsMap& newLocations) {
+ // TODO: for memory efficiency, we may want to do this in a streaming manner,
+ // binary to binary, without YAML IR.
+
+ // TODO: apparently DWARF offsets may be into the middle of instructions...
+ // we may need to track their spans too
+ // https://github.com/WebAssembly/debugging/issues/9#issuecomment-567720872
+
+ AddrExprMap oldAddrMap(wasm);
+ AddrExprMap newAddrMap(newLocations);
+
+ for (auto& table : data.DebugLines) {
+ // Parse the original opcodes and emit new ones.
+ LineState state(table);
+ // All the addresses we need to write out.
+ std::vector<uint32_t> newAddrs;
+ std::unordered_map<uint32_t, LineState> newAddrInfo;
+ for (auto& opcode : table.Opcodes) {
+ // Update the state, and check if we have a new row to emit.
+ if (state.update(opcode, table)) {
+ // An expression may not exist for this line table item, if we optimized
+ // it away.
+ if (auto* expr = oldAddrMap.get(state.addr)) {
+ auto iter = newLocations.find(expr);
+ if (iter != newLocations.end()) {
+ uint32_t newAddr = iter->second;
+ newAddrs.push_back(newAddr);
+ newAddrInfo.emplace(newAddr, state);
+ auto& updatedState = newAddrInfo.at(newAddr);
+ // The only difference is the address TODO other stuff?
+ updatedState.addr = newAddr;
+ }
+ }
+ if (opcode.Opcode == 0 &&
+ opcode.SubOpcode == llvm::dwarf::DW_LNE_end_sequence) {
+ state = LineState(table);
+ }
+ }
+ }
+ // Sort the new addresses (which may be substantially different from the
+ // original layout after optimization).
+ std::sort(newAddrs.begin(), newAddrs.end());
+ // Emit a new line table.
+ {
+ std::vector<llvm::DWARFYAML::LineTableOpcode> newOpcodes;
+ LineState state(table);
+ for (uint32_t addr : newAddrs) {
+ LineState oldState(state);
+ state = newAddrInfo.at(addr);
+ if (state.needToEmit()) {
+ state.emitDiff(oldState, newOpcodes, table);
+ } else {
+ state = oldState;
+ }
+ }
+ table.Opcodes.swap(newOpcodes);
+ }
+ }
+}
+
+static void fixEmittedSection(const std::string& name,
+ std::vector<char>& data) {
+ if (name == ".debug_line") {
+ // The YAML code does not update the line section size. However, it is
+ // trivial to do so after the fact, as the wasm section's additional size is
+ // easy to compute: it is the emitted size - the 4 bytes of the size itself.
+ uint32_t size = data.size() - 4;
+ BufferWithRandomAccess buf;
+ buf << size;
+ for (int i = 0; i < 4; i++) {
+ data[i] = buf[i];
+ }
+ }
+}
+
+void writeDWARFSections(Module& wasm, const BinaryLocationsMap& newLocations) {
BinaryenDWARFInfo info(wasm);
// Convert to Data representation, which YAML can use to write.
- llvm::DWARFYAML::Data Data;
- if (dwarf2yaml(*info.context, Data)) {
+ llvm::DWARFYAML::Data data;
+ if (dwarf2yaml(*info.context, data)) {
Fatal() << "Failed to parse DWARF to YAML";
}
+ updateDebugLines(wasm, data, newLocations);
+
// TODO: Actually update, and remove sections we don't know how to update yet?
// Convert to binary sections.
- auto newSections = EmitDebugSections(
- Data,
- false /* ApplyFixups, should be true if we modify Data, presumably? */);
+ auto newSections = EmitDebugSections(data, true);
// Update the custom sections in the wasm.
// TODO: efficiency
@@ -129,6 +422,7 @@ void writeDWARFSections(Module& wasm) {
auto llvmData = newSections[llvmName]->getBuffer();
section.data.resize(llvmData.size());
std::copy(llvmData.begin(), llvmData.end(), section.data.data());
+ fixEmittedSection(section.name, section.data);
}
}
}
@@ -140,7 +434,7 @@ void dumpDWARF(const Module& wasm) {
std::cerr << "warning: no DWARF dumping support present\n";
}
-void writeDWARFSections(Module& wasm) {
+void writeDWARFSections(Module& wasm, const BinaryLocationsMap& newLocations) {
std::cerr << "warning: no DWARF updating support present\n";
}
diff --git a/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt b/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt
index 62133dab5..694aae6ae 100644
--- a/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt
+++ b/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt
@@ -92,8 +92,8 @@ DWARF debug info
================
Contains section .debug_info (58 bytes)
-Contains section .debug_abbrev (39 bytes)
-Contains section .debug_line (56 bytes)
+Contains section .debug_abbrev (38 bytes)
+Contains section .debug_line (39 bytes)
Contains section .debug_str (212 bytes)
.debug_abbrev contents:
@@ -132,7 +132,7 @@ Abbrev table for offset: 0x00000000
.debug_line contents:
debug_line[0x00000000]
Line table prologue:
- total_length: 0x00000034
+ total_length: 0x00000023
version: 4
prologue_length: 0x0000001d
min_inst_length: 1
@@ -158,19 +158,6 @@ file_names[ 1]:
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
-0x00000027: 00 DW_LNE_set_address (0x0000000000000005)
-0x0000002e: 14 address += 0, line += 2
- 0x0000000000000005 3 0 1 0 0 is_stmt
-
-0x0000002f: 05 DW_LNS_set_column (1)
-0x00000031: 0a DW_LNS_set_prologue_end
-0x00000032: 21 address += 1, line += 1
- 0x0000000000000006 4 1 1 0 0 is_stmt prologue_end
-
-0x00000033: 02 DW_LNS_advance_pc (1)
-0x00000035: 00 DW_LNE_end_sequence
- 0x0000000000000007 4 1 1 0 0 is_stmt end_sequence
-
.debug_str contents:
0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project f2e65447b3cb6340883957e033e77095a025ebdc)"
@@ -210,7 +197,7 @@ file_names[ 1]:
;; custom section "sourceMappingURL", size 15
;; custom section "sourceMappingURL", size 15
;; custom section ".debug_info", size 58
- ;; custom section ".debug_abbrev", size 39
- ;; custom section ".debug_line", size 56
+ ;; custom section ".debug_abbrev", size 38
+ ;; custom section ".debug_line", size 39
;; custom section ".debug_str", size 212
)
diff --git a/test/passes/dwarfupdate.bin.txt b/test/passes/dwarfupdate.bin.txt
deleted file mode 100644
index bb68d7f60..000000000
--- a/test/passes/dwarfupdate.bin.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-(module
- (type $i32_=>_i32 (func (param i32) (result i32)))
- (type $i32_=>_none (func (param i32)))
- (type $none_=>_i32 (func (result i32)))
- (type $none_=>_none (func))
- (type $i32_i32_=>_none (func (param i32 i32)))
- (import "env" "__wasm_call_ctors" (func $fimport$0))
- (import "env" "dlmalloc" (func $fimport$1 (param i32) (result i32)))
- (import "env" "dlfree" (func $fimport$2 (param i32)))
- (import "env" "setThrew" (func $fimport$3 (param i32 i32)))
- (import "env" "stackSave" (func $fimport$4 (result i32)))
- (import "env" "stackAlloc" (func $fimport$5 (param i32) (result i32)))
- (import "env" "stackRestore" (func $fimport$6 (param i32)))
- (import "env" "__growWasmMemory" (func $fimport$7 (param i32) (result i32)))
- (global $global$0 i32 (i32.const 1532))
- (export "__wasm_call_ctors" (func $fimport$0))
- (export "_Z3foov" (func $fimport$0))
- (export "__errno_location" (func $0))
- (export "setThrew" (func $fimport$3))
- (export "malloc" (func $fimport$1))
- (export "free" (func $fimport$2))
- (export "__data_end" (global $global$0))
- (export "stackSave" (func $fimport$4))
- (export "stackAlloc" (func $fimport$5))
- (export "stackRestore" (func $fimport$6))
- (export "__growWasmMemory" (func $fimport$7))
- (func $0 (; 8 ;) (result i32)
- (i32.const 1024)
- )
- ;; custom section "sourceMappingURL", size 15
- ;; custom section "sourceMappingURL", size 15
- ;; custom section ".debug_info", size 58
- ;; custom section ".debug_abbrev", size 38
- ;; custom section ".debug_line", size 56
- ;; custom section ".debug_str", size 212
-)
diff --git a/test/passes/dwarfupdate.wasm b/test/passes/dwarfupdate.wasm
deleted file mode 100644
index b9c7378e8..000000000
--- a/test/passes/dwarfupdate.wasm
+++ /dev/null
Binary files differ
diff --git a/test/passes/fannkuch3.bin.txt b/test/passes/fannkuch3.bin.txt
new file mode 100644
index 000000000..273237533
--- /dev/null
+++ b/test/passes/fannkuch3.bin.txt
@@ -0,0 +1,6100 @@
+DWARF debug info
+================
+
+Contains section .debug_info (812 bytes)
+Contains section .debug_loc (345 bytes)
+Contains section .debug_ranges (88 bytes)
+Contains section .debug_abbrev (353 bytes)
+Contains section .debug_line (1459 bytes)
+Contains section .debug_str (475 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_ranges DW_FORM_sec_offset
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_pointer_type DW_CHILDREN_no
+
+[5] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+[7] DW_TAG_pointer_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[8] DW_TAG_const_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[9] DW_TAG_structure_type DW_CHILDREN_yes
+ DW_AT_calling_convention DW_FORM_data1
+ DW_AT_name DW_FORM_strp
+ DW_AT_byte_size DW_FORM_data1
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[10] DW_TAG_member DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_type DW_FORM_ref4
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_data_member_location DW_FORM_data1
+
+[11] DW_TAG_namespace DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+
+[12] DW_TAG_typedef DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[13] DW_TAG_unspecified_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+
+[14] DW_TAG_imported_declaration DW_CHILDREN_no
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_import DW_FORM_ref4
+
+[15] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[16] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[17] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[18] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[19] DW_TAG_lexical_block DW_CHILDREN_yes
+ DW_AT_ranges DW_FORM_sec_offset
+
+[20] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_low_pc DW_FORM_addr
+
+[21] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+[22] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_inline DW_FORM_data1
+
+[23] DW_TAG_label DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[24] DW_TAG_lexical_block DW_CHILDREN_yes
+
+[25] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[26] DW_TAG_inlined_subroutine DW_CHILDREN_yes
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_call_file DW_FORM_data1
+ DW_AT_call_line DW_FORM_data1
+ DW_AT_call_column DW_FORM_data1
+
+[27] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[28] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[29] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[30] DW_TAG_label DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000328 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x0000032c)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C_plus_plus)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x000000cf] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+ DW_AT_ranges [DW_FORM_sec_offset] (0x00000040
+ [0x00000003, 0x0000039a)
+ [0x0000039c, 0x000006e2))
+
+.debug_loc contents:
+0x00000000:
+ [0xffffffff, 0x00000003):
+ [0x00000000, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000001d:
+ [0xffffffff, 0x00000003):
+ [0x00000007, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000ec, 0x000000f5): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000179, 0x00000186): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000275, 0x0000027e): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000302, 0x0000030f): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000007b:
+ [0xffffffff, 0x00000003):
+ [0x000000cf, 0x000000e6): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+
+0x000000a5:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +30, DW_OP_stack_value
+
+0x000000c2:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_lit0, DW_OP_stack_value
+
+0x000000de:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000099, 0x000000c1): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000f5, 0x000000f9): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000178, 0x00000188): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001fa, 0x0000020c): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000241, 0x00000255): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000013c:
+ [0xffffffff, 0x0000039c):
+ [0x000002d6, 0x000002e1): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x000005af
+ version: 4
+ prologue_length: 0x000000d7
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+include_directories[ 1] = "/usr/local/google/home/azakai/Dev"
+file_names[ 1]:
+ name: "emscripten/system/include/libc/stdlib.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 2]:
+ name: "emscripten/fannkuch.cpp"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 3]:
+ name: "emscripten/system/include/libcxx/__nullptr"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 4]:
+ name: "emscripten/system/include/libcxx/stddef.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+0x000000e1: 04 DW_LNS_set_file (2)
+0x000000e3: 00 DW_LNE_set_address (0x0000000000000003)
+0x000000ea: 03 DW_LNS_advance_line (27)
+0x000000ec: 01 DW_LNS_copy
+ 0x0000000000000003 27 0 2 0 0 is_stmt
+
+
+0x000000ed: 05 DW_LNS_set_column (14)
+0x000000ef: 0a DW_LNS_set_prologue_end
+0x000000f0: 7a address += 7, line += 6
+ 0x000000000000000a 33 14 2 0 0 is_stmt prologue_end
+
+0x000000f1: 06 DW_LNS_negate_stmt
+0x000000f2: 03 DW_LNS_advance_line (0)
+0x000000f4: 58 address += 5, line += 0
+ 0x000000000000000f 0 14 2 0 0
+
+0x000000f5: 05 DW_LNS_set_column (27)
+0x000000f7: 06 DW_LNS_negate_stmt
+0x000000f8: 03 DW_LNS_advance_line (34)
+0x000000fa: 4a address += 4, line += 0
+ 0x0000000000000013 34 27 2 0 0 is_stmt
+
+0x000000fb: 05 DW_LNS_set_column (18)
+0x000000fd: 06 DW_LNS_negate_stmt
+0x000000fe: 20 address += 1, line += 0
+ 0x0000000000000014 34 18 2 0 0
+
+0x000000ff: 05 DW_LNS_set_column (17)
+0x00000101: 06 DW_LNS_negate_stmt
+0x00000102: 9f address += 10, line += 1
+ 0x000000000000001e 35 17 2 0 0 is_stmt
+
+0x00000103: 05 DW_LNS_set_column (18)
+0x00000105: 9f address += 10, line += 1
+ 0x0000000000000028 36 18 2 0 0 is_stmt
+
+0x00000106: 06 DW_LNS_negate_stmt
+0x00000107: 03 DW_LNS_advance_line (0)
+0x00000109: 9e address += 10, line += 0
+ 0x0000000000000032 0 18 2 0 0
+
+0x0000010a: 06 DW_LNS_negate_stmt
+0x0000010b: 03 DW_LNS_advance_line (37)
+0x0000010d: 66 address += 6, line += 0
+ 0x0000000000000038 37 18 2 0 0 is_stmt
+
+0x0000010e: 05 DW_LNS_set_column (4)
+0x00000110: 06 DW_LNS_negate_stmt
+0x00000111: 58 address += 5, line += 0
+ 0x000000000000003d 37 4 2 0 0
+
+0x00000112: 03 DW_LNS_advance_line (0)
+0x00000114: 2e address += 2, line += 0
+ 0x000000000000003f 0 4 2 0 0
+
+0x00000115: 05 DW_LNS_set_column (7)
+0x00000117: 06 DW_LNS_negate_stmt
+0x00000118: 03 DW_LNS_advance_line (38)
+0x0000011a: 2e address += 2, line += 0
+ 0x0000000000000041 38 7 2 0 0 is_stmt
+
+0x0000011b: 05 DW_LNS_set_column (16)
+0x0000011d: 06 DW_LNS_negate_stmt
+0x0000011e: 82 address += 8, line += 0
+ 0x0000000000000049 38 16 2 0 0
+
+0x0000011f: 05 DW_LNS_set_column (24)
+0x00000121: 06 DW_LNS_negate_stmt
+0x00000122: 57 address += 5, line += -1
+ 0x000000000000004e 37 24 2 0 0 is_stmt
+
+0x00000123: 05 DW_LNS_set_column (18)
+0x00000125: 06 DW_LNS_negate_stmt
+0x00000126: 58 address += 5, line += 0
+ 0x0000000000000053 37 18 2 0 0
+
+0x00000127: 05 DW_LNS_set_column (4)
+0x00000129: 58 address += 5, line += 0
+ 0x0000000000000058 37 4 2 0 0
+
+0x0000012a: 06 DW_LNS_negate_stmt
+0x0000012b: 3e address += 3, line += 2
+ 0x000000000000005b 39 4 2 0 0 is_stmt
+
+0x0000012c: 05 DW_LNS_set_column (16)
+0x0000012e: 06 DW_LNS_negate_stmt
+0x0000012f: 2e address += 2, line += 0
+ 0x000000000000005d 39 16 2 0 0
+
+0x00000130: 05 DW_LNS_set_column (4)
+0x00000132: 90 address += 9, line += 0
+ 0x0000000000000066 39 4 2 0 0
+
+0x00000133: 05 DW_LNS_set_column (23)
+0x00000135: 2e address += 2, line += 0
+ 0x0000000000000068 39 23 2 0 0
+
+0x00000136: 05 DW_LNS_set_column (19)
+0x00000138: 58 address += 5, line += 0
+ 0x000000000000006d 39 19 2 0 0
+
+0x00000139: 05 DW_LNS_set_column (4)
+0x0000013b: 06 DW_LNS_negate_stmt
+0x0000013c: 59 address += 5, line += 1
+ 0x0000000000000072 40 4 2 0 0 is_stmt
+
+0x0000013d: 05 DW_LNS_set_column (17)
+0x0000013f: 06 DW_LNS_negate_stmt
+0x00000140: 82 address += 8, line += 0
+ 0x000000000000007a 40 17 2 0 0
+
+0x00000141: 05 DW_LNS_set_column (18)
+0x00000143: 06 DW_LNS_negate_stmt
+0x00000144: a9 address += 11, line += -3
+ 0x0000000000000085 37 18 2 0 0 is_stmt
+
+0x00000145: 05 DW_LNS_set_column (4)
+0x00000147: 5e address += 5, line += 6
+ 0x000000000000008a 43 4 2 0 0 is_stmt
+
+0x00000148: 06 DW_LNS_negate_stmt
+0x00000149: 03 DW_LNS_advance_line (0)
+0x0000014b: 2e address += 2, line += 0
+ 0x000000000000008c 0 4 2 0 0
+
+0x0000014c: 05 DW_LNS_set_column (16)
+0x0000014e: 06 DW_LNS_negate_stmt
+0x0000014f: 03 DW_LNS_advance_line (44)
+0x00000151: 4a address += 4, line += 0
+ 0x0000000000000090 44 16 2 0 0 is_stmt
+
+0x00000152: 06 DW_LNS_negate_stmt
+0x00000153: 03 DW_LNS_advance_line (0)
+0x00000155: 74 address += 7, line += 0
+ 0x0000000000000097 0 16 2 0 0
+
+0x00000156: 05 DW_LNS_set_column (10)
+0x00000158: 06 DW_LNS_negate_stmt
+0x00000159: 03 DW_LNS_advance_line (45)
+0x0000015b: 2e address += 2, line += 0
+ 0x0000000000000099 45 10 2 0 0 is_stmt
+
+0x0000015c: 05 DW_LNS_set_column (18)
+0x0000015e: 06 DW_LNS_negate_stmt
+0x0000015f: 2e address += 2, line += 0
+ 0x000000000000009b 45 18 2 0 0
+
+0x00000160: 05 DW_LNS_set_column (10)
+0x00000162: 90 address += 9, line += 0
+ 0x00000000000000a4 45 10 2 0 0
+
+0x00000163: 05 DW_LNS_set_column (23)
+0x00000165: 2e address += 2, line += 0
+ 0x00000000000000a6 45 23 2 0 0
+
+0x00000166: 05 DW_LNS_set_column (16)
+0x00000168: 06 DW_LNS_negate_stmt
+0x00000169: 57 address += 5, line += -1
+ 0x00000000000000ab 44 16 2 0 0 is_stmt
+
+0x0000016a: 05 DW_LNS_set_column (0)
+0x0000016c: 06 DW_LNS_negate_stmt
+0x0000016d: 03 DW_LNS_advance_line (0)
+0x0000016f: 74 address += 7, line += 0
+ 0x00000000000000b2 0 0 2 0 0
+
+0x00000170: 05 DW_LNS_set_column (7)
+0x00000172: 03 DW_LNS_advance_line (44)
+0x00000174: 4a address += 4, line += 0
+ 0x00000000000000b6 44 7 2 0 0
+
+0x00000175: 05 DW_LNS_set_column (11)
+0x00000177: 06 DW_LNS_negate_stmt
+0x00000178: 68 address += 6, line += 2
+ 0x00000000000000bc 46 11 2 0 0 is_stmt
+
+0x00000179: 05 DW_LNS_set_column (28)
+0x0000017b: 06 DW_LNS_negate_stmt
+0x0000017c: ba address += 12, line += 0
+ 0x00000000000000c8 46 28 2 0 0
+
+0x0000017d: 05 DW_LNS_set_column (41)
+0x0000017f: 58 address += 5, line += 0
+ 0x00000000000000cd 46 41 2 0 0
+
+0x00000180: 05 DW_LNS_set_column (21)
+0x00000182: 06 DW_LNS_negate_stmt
+0x00000183: 5a address += 5, line += 2
+ 0x00000000000000d2 48 21 2 0 0 is_stmt
+
+0x00000184: 05 DW_LNS_set_column (14)
+0x00000186: bc address += 12, line += 2
+ 0x00000000000000de 50 14 2 0 0 is_stmt
+
+0x00000187: 06 DW_LNS_negate_stmt
+0x00000188: 03 DW_LNS_advance_line (0)
+0x0000018a: 74 address += 7, line += 0
+ 0x00000000000000e5 0 14 2 0 0
+
+0x0000018b: 05 DW_LNS_set_column (38)
+0x0000018d: 06 DW_LNS_negate_stmt
+0x0000018e: 03 DW_LNS_advance_line (52)
+0x00000190: ba address += 12, line += 0
+ 0x00000000000000f1 52 38 2 0 0 is_stmt
+
+0x00000191: 05 DW_LNS_set_column (0)
+0x00000193: 06 DW_LNS_negate_stmt
+0x00000194: 03 DW_LNS_advance_line (0)
+0x00000196: 74 address += 7, line += 0
+ 0x00000000000000f8 0 0 2 0 0
+
+0x00000197: 05 DW_LNS_set_column (22)
+0x00000199: 06 DW_LNS_negate_stmt
+0x0000019a: 03 DW_LNS_advance_line (53)
+0x0000019c: c8 address += 13, line += 0
+ 0x0000000000000105 53 22 2 0 0 is_stmt
+
+0x0000019d: 05 DW_LNS_set_column (24)
+0x0000019f: e5 address += 15, line += 1
+ 0x0000000000000114 54 24 2 0 0 is_stmt
+
+0x000001a0: 05 DW_LNS_set_column (26)
+0x000001a2: 06 DW_LNS_negate_stmt
+0x000001a3: 2e address += 2, line += 0
+ 0x0000000000000116 54 26 2 0 0
+
+0x000001a4: 05 DW_LNS_set_column (24)
+0x000001a6: c8 address += 13, line += 0
+ 0x0000000000000123 54 24 2 0 0
+
+0x000001a7: 06 DW_LNS_negate_stmt
+0x000001a8: 3d address += 3, line += 1
+ 0x0000000000000126 55 24 2 0 0 is_stmt
+
+0x000001a9: 05 DW_LNS_set_column (44)
+0x000001ab: 71 address += 7, line += -3
+ 0x000000000000012d 52 44 2 0 0 is_stmt
+
+0x000001ac: 06 DW_LNS_negate_stmt
+0x000001ad: 03 DW_LNS_advance_line (0)
+0x000001af: 58 address += 5, line += 0
+ 0x0000000000000132 0 44 2 0 0
+
+0x000001b0: 05 DW_LNS_set_column (38)
+0x000001b2: 03 DW_LNS_advance_line (52)
+0x000001b4: 74 address += 7, line += 0
+ 0x0000000000000139 52 38 2 0 0
+
+0x000001b5: 05 DW_LNS_set_column (13)
+0x000001b7: 3c address += 3, line += 0
+ 0x000000000000013c 52 13 2 0 0
+
+0x000001b8: 05 DW_LNS_set_column (19)
+0x000001ba: 06 DW_LNS_negate_stmt
+0x000001bb: 50 address += 4, line += 6
+ 0x0000000000000140 58 19 2 0 0 is_stmt
+
+0x000001bc: 05 DW_LNS_set_column (21)
+0x000001be: e5 address += 15, line += 1
+ 0x000000000000014f 59 21 2 0 0 is_stmt
+
+0x000001bf: 05 DW_LNS_set_column (18)
+0x000001c1: 72 address += 7, line += -2
+ 0x0000000000000156 57 18 2 0 0 is_stmt
+
+0x000001c2: 05 DW_LNS_set_column (0)
+0x000001c4: 06 DW_LNS_negate_stmt
+0x000001c5: 03 DW_LNS_advance_line (0)
+0x000001c7: 74 address += 7, line += 0
+ 0x000000000000015d 0 0 2 0 0
+
+0x000001c8: 05 DW_LNS_set_column (14)
+0x000001ca: 06 DW_LNS_negate_stmt
+0x000001cb: 03 DW_LNS_advance_line (62)
+0x000001cd: 90 address += 9, line += 0
+ 0x0000000000000166 62 14 2 0 0 is_stmt
+
+0x000001ce: 05 DW_LNS_set_column (23)
+0x000001d0: 06 DW_LNS_negate_stmt
+0x000001d1: 4a address += 4, line += 0
+ 0x000000000000016a 62 23 2 0 0
+
+0x000001d2: 05 DW_LNS_set_column (14)
+0x000001d4: 58 address += 5, line += 0
+ 0x000000000000016f 62 14 2 0 0
+
+0x000001d5: 03 DW_LNS_advance_line (0)
+0x000001d7: 3c address += 3, line += 0
+ 0x0000000000000172 0 14 2 0 0
+
+0x000001d8: 05 DW_LNS_set_column (16)
+0x000001da: 06 DW_LNS_negate_stmt
+0x000001db: 03 DW_LNS_advance_line (66)
+0x000001de: 20 address += 1, line += 0
+ 0x0000000000000173 66 16 2 0 0 is_stmt
+
+0x000001df: 06 DW_LNS_negate_stmt
+0x000001e0: 03 DW_LNS_advance_line (0)
+0x000001e3: 74 address += 7, line += 0
+ 0x000000000000017a 0 16 2 0 0
+
+0x000001e4: 05 DW_LNS_set_column (27)
+0x000001e6: 06 DW_LNS_negate_stmt
+0x000001e7: 03 DW_LNS_advance_line (75)
+0x000001ea: 82 address += 8, line += 0
+ 0x0000000000000182 75 27 2 0 0 is_stmt
+
+0x000001eb: 06 DW_LNS_negate_stmt
+0x000001ec: 03 DW_LNS_advance_line (0)
+0x000001ef: 74 address += 7, line += 0
+ 0x0000000000000189 0 27 2 0 0
+
+0x000001f0: 05 DW_LNS_set_column (16)
+0x000001f2: 06 DW_LNS_negate_stmt
+0x000001f3: 03 DW_LNS_advance_line (76)
+0x000001f6: 2e address += 2, line += 0
+ 0x000000000000018b 76 16 2 0 0 is_stmt
+
+0x000001f7: 05 DW_LNS_set_column (27)
+0x000001f9: 06 DW_LNS_negate_stmt
+0x000001fa: 82 address += 8, line += 0
+ 0x0000000000000193 76 27 2 0 0
+
+0x000001fb: 05 DW_LNS_set_column (35)
+0x000001fd: 2e address += 2, line += 0
+ 0x0000000000000195 76 35 2 0 0
+
+0x000001fe: 05 DW_LNS_set_column (27)
+0x00000200: 90 address += 9, line += 0
+ 0x000000000000019e 76 27 2 0 0
+
+0x00000201: 05 DW_LNS_set_column (25)
+0x00000203: 58 address += 5, line += 0
+ 0x00000000000001a3 76 25 2 0 0
+
+0x00000204: 05 DW_LNS_set_column (27)
+0x00000206: 06 DW_LNS_negate_stmt
+0x00000207: 3b address += 3, line += -1
+ 0x00000000000001a6 75 27 2 0 0 is_stmt
+
+0x00000208: 05 DW_LNS_set_column (13)
+0x0000020a: 06 DW_LNS_negate_stmt
+0x0000020b: 58 address += 5, line += 0
+ 0x00000000000001ab 75 13 2 0 0
+
+0x0000020c: 05 DW_LNS_set_column (0)
+0x0000020e: 03 DW_LNS_advance_line (0)
+0x00000211: 3c address += 3, line += 0
+ 0x00000000000001ae 0 0 2 0 0
+
+0x00000212: 05 DW_LNS_set_column (13)
+0x00000214: 06 DW_LNS_negate_stmt
+0x00000215: 03 DW_LNS_advance_line (77)
+0x00000218: 58 address += 5, line += 0
+ 0x00000000000001b3 77 13 2 0 0 is_stmt
+
+0x00000219: 05 DW_LNS_set_column (22)
+0x0000021b: 06 DW_LNS_negate_stmt
+0x0000021c: 82 address += 8, line += 0
+ 0x00000000000001bb 77 22 2 0 0
+
+0x0000021d: 05 DW_LNS_set_column (16)
+0x0000021f: 06 DW_LNS_negate_stmt
+0x00000220: 5a address += 5, line += 2
+ 0x00000000000001c0 79 16 2 0 0 is_stmt
+
+0x00000221: 05 DW_LNS_set_column (14)
+0x00000223: 06 DW_LNS_negate_stmt
+0x00000224: 82 address += 8, line += 0
+ 0x00000000000001c8 79 14 2 0 0
+
+0x00000225: 05 DW_LNS_set_column (25)
+0x00000227: e4 address += 15, line += 0
+ 0x00000000000001d7 79 25 2 0 0
+
+0x00000228: 05 DW_LNS_set_column (11)
+0x0000022a: 06 DW_LNS_negate_stmt
+0x0000022b: 76 address += 7, line += 2
+ 0x00000000000001de 81 11 2 0 0 is_stmt
+
+0x0000022c: 05 DW_LNS_set_column (16)
+0x0000022e: 03 DW_LNS_advance_line (66)
+0x00000230: 58 address += 5, line += 0
+ 0x00000000000001e3 66 16 2 0 0 is_stmt
+
+0x00000231: 05 DW_LNS_set_column (22)
+0x00000233: 7c address += 7, line += 8
+ 0x00000000000001ea 74 22 2 0 0 is_stmt
+
+0x00000234: 05 DW_LNS_set_column (4)
+0x00000236: 03 DW_LNS_advance_line (37)
+0x00000238: 90 address += 9, line += 0
+ 0x00000000000001f3 37 4 2 0 0 is_stmt
+
+0x00000239: 3e address += 3, line += 2
+ 0x00000000000001f6 39 4 2 0 0 is_stmt
+
+0x0000023a: 05 DW_LNS_set_column (16)
+0x0000023c: 06 DW_LNS_negate_stmt
+0x0000023d: 2e address += 2, line += 0
+ 0x00000000000001f8 39 16 2 0 0
+
+0x0000023e: 05 DW_LNS_set_column (4)
+0x00000240: 90 address += 9, line += 0
+ 0x0000000000000201 39 4 2 0 0
+
+0x00000241: 05 DW_LNS_set_column (23)
+0x00000243: 2e address += 2, line += 0
+ 0x0000000000000203 39 23 2 0 0
+
+0x00000244: 05 DW_LNS_set_column (19)
+0x00000246: 58 address += 5, line += 0
+ 0x0000000000000208 39 19 2 0 0
+
+0x00000247: 05 DW_LNS_set_column (4)
+0x00000249: 06 DW_LNS_negate_stmt
+0x0000024a: 59 address += 5, line += 1
+ 0x000000000000020d 40 4 2 0 0 is_stmt
+
+0x0000024b: 05 DW_LNS_set_column (17)
+0x0000024d: 06 DW_LNS_negate_stmt
+0x0000024e: 82 address += 8, line += 0
+ 0x0000000000000215 40 17 2 0 0
+
+0x0000024f: 03 DW_LNS_advance_line (0)
+0x00000251: 74 address += 7, line += 0
+ 0x000000000000021c 0 17 2 0 0
+
+0x00000252: 05 DW_LNS_set_column (16)
+0x00000254: 06 DW_LNS_negate_stmt
+0x00000255: 03 DW_LNS_advance_line (44)
+0x00000257: 90 address += 9, line += 0
+ 0x0000000000000225 44 16 2 0 0 is_stmt
+
+0x00000258: 06 DW_LNS_negate_stmt
+0x00000259: 03 DW_LNS_advance_line (0)
+0x0000025b: 74 address += 7, line += 0
+ 0x000000000000022c 0 16 2 0 0
+
+0x0000025c: 05 DW_LNS_set_column (10)
+0x0000025e: 06 DW_LNS_negate_stmt
+0x0000025f: 03 DW_LNS_advance_line (45)
+0x00000261: 2e address += 2, line += 0
+ 0x000000000000022e 45 10 2 0 0 is_stmt
+
+0x00000262: 05 DW_LNS_set_column (18)
+0x00000264: 06 DW_LNS_negate_stmt
+0x00000265: 2e address += 2, line += 0
+ 0x0000000000000230 45 18 2 0 0
+
+0x00000266: 05 DW_LNS_set_column (10)
+0x00000268: 90 address += 9, line += 0
+ 0x0000000000000239 45 10 2 0 0
+
+0x00000269: 05 DW_LNS_set_column (23)
+0x0000026b: 2e address += 2, line += 0
+ 0x000000000000023b 45 23 2 0 0
+
+0x0000026c: 05 DW_LNS_set_column (16)
+0x0000026e: 06 DW_LNS_negate_stmt
+0x0000026f: 57 address += 5, line += -1
+ 0x0000000000000240 44 16 2 0 0 is_stmt
+
+0x00000270: 06 DW_LNS_negate_stmt
+0x00000271: 03 DW_LNS_advance_line (0)
+0x00000273: e4 address += 15, line += 0
+ 0x000000000000024f 0 16 2 0 0
+
+0x00000274: 05 DW_LNS_set_column (11)
+0x00000276: 06 DW_LNS_negate_stmt
+0x00000277: 03 DW_LNS_advance_line (46)
+0x00000279: 2e address += 2, line += 0
+ 0x0000000000000251 46 11 2 0 0 is_stmt
+
+0x0000027a: 05 DW_LNS_set_column (28)
+0x0000027c: 06 DW_LNS_negate_stmt
+0x0000027d: ba address += 12, line += 0
+ 0x000000000000025d 46 28 2 0 0
+
+0x0000027e: 05 DW_LNS_set_column (41)
+0x00000280: 58 address += 5, line += 0
+ 0x0000000000000262 46 41 2 0 0
+
+0x00000281: 05 DW_LNS_set_column (14)
+0x00000283: 06 DW_LNS_negate_stmt
+0x00000284: 5c address += 5, line += 4
+ 0x0000000000000267 50 14 2 0 0 is_stmt
+
+0x00000285: 06 DW_LNS_negate_stmt
+0x00000286: 03 DW_LNS_advance_line (0)
+0x00000288: 74 address += 7, line += 0
+ 0x000000000000026e 0 14 2 0 0
+
+0x00000289: 05 DW_LNS_set_column (38)
+0x0000028b: 06 DW_LNS_negate_stmt
+0x0000028c: 03 DW_LNS_advance_line (52)
+0x0000028e: ba address += 12, line += 0
+ 0x000000000000027a 52 38 2 0 0 is_stmt
+
+0x0000028f: 05 DW_LNS_set_column (0)
+0x00000291: 06 DW_LNS_negate_stmt
+0x00000292: 03 DW_LNS_advance_line (0)
+0x00000294: 74 address += 7, line += 0
+ 0x0000000000000281 0 0 2 0 0
+
+0x00000295: 05 DW_LNS_set_column (22)
+0x00000297: 06 DW_LNS_negate_stmt
+0x00000298: 03 DW_LNS_advance_line (53)
+0x0000029a: c8 address += 13, line += 0
+ 0x000000000000028e 53 22 2 0 0 is_stmt
+
+0x0000029b: 05 DW_LNS_set_column (24)
+0x0000029d: e5 address += 15, line += 1
+ 0x000000000000029d 54 24 2 0 0 is_stmt
+
+0x0000029e: 05 DW_LNS_set_column (26)
+0x000002a0: 06 DW_LNS_negate_stmt
+0x000002a1: 2e address += 2, line += 0
+ 0x000000000000029f 54 26 2 0 0
+
+0x000002a2: 05 DW_LNS_set_column (24)
+0x000002a4: c8 address += 13, line += 0
+ 0x00000000000002ac 54 24 2 0 0
+
+0x000002a5: 06 DW_LNS_negate_stmt
+0x000002a6: 3d address += 3, line += 1
+ 0x00000000000002af 55 24 2 0 0 is_stmt
+
+0x000002a7: 05 DW_LNS_set_column (44)
+0x000002a9: 71 address += 7, line += -3
+ 0x00000000000002b6 52 44 2 0 0 is_stmt
+
+0x000002aa: 06 DW_LNS_negate_stmt
+0x000002ab: 03 DW_LNS_advance_line (0)
+0x000002ad: 58 address += 5, line += 0
+ 0x00000000000002bb 0 44 2 0 0
+
+0x000002ae: 05 DW_LNS_set_column (38)
+0x000002b0: 03 DW_LNS_advance_line (52)
+0x000002b2: 74 address += 7, line += 0
+ 0x00000000000002c2 52 38 2 0 0
+
+0x000002b3: 03 DW_LNS_advance_line (0)
+0x000002b5: 58 address += 5, line += 0
+ 0x00000000000002c7 0 38 2 0 0
+
+0x000002b6: 05 DW_LNS_set_column (19)
+0x000002b8: 06 DW_LNS_negate_stmt
+0x000002b9: 03 DW_LNS_advance_line (58)
+0x000002bb: 2e address += 2, line += 0
+ 0x00000000000002c9 58 19 2 0 0 is_stmt
+
+0x000002bc: 05 DW_LNS_set_column (21)
+0x000002be: e5 address += 15, line += 1
+ 0x00000000000002d8 59 21 2 0 0 is_stmt
+
+0x000002bf: 05 DW_LNS_set_column (18)
+0x000002c1: 72 address += 7, line += -2
+ 0x00000000000002df 57 18 2 0 0 is_stmt
+
+0x000002c2: 05 DW_LNS_set_column (0)
+0x000002c4: 06 DW_LNS_negate_stmt
+0x000002c5: 03 DW_LNS_advance_line (0)
+0x000002c7: 74 address += 7, line += 0
+ 0x00000000000002e6 0 0 2 0 0
+
+0x000002c8: 05 DW_LNS_set_column (14)
+0x000002ca: 06 DW_LNS_negate_stmt
+0x000002cb: 03 DW_LNS_advance_line (62)
+0x000002cd: 90 address += 9, line += 0
+ 0x00000000000002ef 62 14 2 0 0 is_stmt
+
+0x000002ce: 05 DW_LNS_set_column (23)
+0x000002d0: 06 DW_LNS_negate_stmt
+0x000002d1: 4a address += 4, line += 0
+ 0x00000000000002f3 62 23 2 0 0
+
+0x000002d2: 05 DW_LNS_set_column (14)
+0x000002d4: 58 address += 5, line += 0
+ 0x00000000000002f8 62 14 2 0 0
+
+0x000002d5: 03 DW_LNS_advance_line (0)
+0x000002d7: 3c address += 3, line += 0
+ 0x00000000000002fb 0 14 2 0 0
+
+0x000002d8: 05 DW_LNS_set_column (16)
+0x000002da: 06 DW_LNS_negate_stmt
+0x000002db: 03 DW_LNS_advance_line (66)
+0x000002de: 20 address += 1, line += 0
+ 0x00000000000002fc 66 16 2 0 0 is_stmt
+
+0x000002df: 06 DW_LNS_negate_stmt
+0x000002e0: 03 DW_LNS_advance_line (0)
+0x000002e3: 74 address += 7, line += 0
+ 0x0000000000000303 0 16 2 0 0
+
+0x000002e4: 05 DW_LNS_set_column (27)
+0x000002e6: 06 DW_LNS_negate_stmt
+0x000002e7: 03 DW_LNS_advance_line (75)
+0x000002ea: 82 address += 8, line += 0
+ 0x000000000000030b 75 27 2 0 0 is_stmt
+
+0x000002eb: 06 DW_LNS_negate_stmt
+0x000002ec: 03 DW_LNS_advance_line (0)
+0x000002ef: 74 address += 7, line += 0
+ 0x0000000000000312 0 27 2 0 0
+
+0x000002f0: 05 DW_LNS_set_column (16)
+0x000002f2: 06 DW_LNS_negate_stmt
+0x000002f3: 03 DW_LNS_advance_line (76)
+0x000002f6: 2e address += 2, line += 0
+ 0x0000000000000314 76 16 2 0 0 is_stmt
+
+0x000002f7: 05 DW_LNS_set_column (27)
+0x000002f9: 06 DW_LNS_negate_stmt
+0x000002fa: 82 address += 8, line += 0
+ 0x000000000000031c 76 27 2 0 0
+
+0x000002fb: 05 DW_LNS_set_column (35)
+0x000002fd: 2e address += 2, line += 0
+ 0x000000000000031e 76 35 2 0 0
+
+0x000002fe: 05 DW_LNS_set_column (27)
+0x00000300: 90 address += 9, line += 0
+ 0x0000000000000327 76 27 2 0 0
+
+0x00000301: 05 DW_LNS_set_column (25)
+0x00000303: 58 address += 5, line += 0
+ 0x000000000000032c 76 25 2 0 0
+
+0x00000304: 05 DW_LNS_set_column (27)
+0x00000306: 06 DW_LNS_negate_stmt
+0x00000307: 3b address += 3, line += -1
+ 0x000000000000032f 75 27 2 0 0 is_stmt
+
+0x00000308: 06 DW_LNS_negate_stmt
+0x00000309: 03 DW_LNS_advance_line (0)
+0x0000030c: 74 address += 7, line += 0
+ 0x0000000000000336 0 27 2 0 0
+
+0x0000030d: 05 DW_LNS_set_column (13)
+0x0000030f: 06 DW_LNS_negate_stmt
+0x00000310: 03 DW_LNS_advance_line (77)
+0x00000313: 66 address += 6, line += 0
+ 0x000000000000033c 77 13 2 0 0 is_stmt
+
+0x00000314: 05 DW_LNS_set_column (22)
+0x00000316: 06 DW_LNS_negate_stmt
+0x00000317: 82 address += 8, line += 0
+ 0x0000000000000344 77 22 2 0 0
+
+0x00000318: 05 DW_LNS_set_column (16)
+0x0000031a: 06 DW_LNS_negate_stmt
+0x0000031b: 5a address += 5, line += 2
+ 0x0000000000000349 79 16 2 0 0 is_stmt
+
+0x0000031c: 05 DW_LNS_set_column (14)
+0x0000031e: 06 DW_LNS_negate_stmt
+0x0000031f: 82 address += 8, line += 0
+ 0x0000000000000351 79 14 2 0 0
+
+0x00000320: 05 DW_LNS_set_column (25)
+0x00000322: e4 address += 15, line += 0
+ 0x0000000000000360 79 25 2 0 0
+
+0x00000323: 05 DW_LNS_set_column (11)
+0x00000325: 06 DW_LNS_negate_stmt
+0x00000326: 76 address += 7, line += 2
+ 0x0000000000000367 81 11 2 0 0 is_stmt
+
+0x00000327: 05 DW_LNS_set_column (16)
+0x00000329: 03 DW_LNS_advance_line (66)
+0x0000032b: 58 address += 5, line += 0
+ 0x000000000000036c 66 16 2 0 0 is_stmt
+
+0x0000032c: 05 DW_LNS_set_column (22)
+0x0000032e: 7c address += 7, line += 8
+ 0x0000000000000373 74 22 2 0 0 is_stmt
+
+0x0000032f: 06 DW_LNS_negate_stmt
+0x00000330: 03 DW_LNS_advance_line (0)
+0x00000333: 90 address += 9, line += 0
+ 0x000000000000037c 0 22 2 0 0
+
+0x00000334: 05 DW_LNS_set_column (13)
+0x00000336: 06 DW_LNS_negate_stmt
+0x00000337: 03 DW_LNS_advance_line (67)
+0x0000033a: 3c address += 3, line += 0
+ 0x000000000000037f 67 13 2 0 0 is_stmt
+
+0x0000033b: 83 address += 8, line += 1
+ 0x0000000000000387 68 13 2 0 0 is_stmt
+
+0x0000033c: 83 address += 8, line += 1
+ 0x000000000000038f 69 13 2 0 0 is_stmt
+
+0x0000033d: 83 address += 8, line += 1
+ 0x0000000000000397 70 13 2 0 0 is_stmt
+
+0x0000033e: 02 DW_LNS_advance_pc (3)
+0x00000340: 00 DW_LNE_end_sequence
+ 0x000000000000039a 70 13 2 0 0 is_stmt end_sequence
+
+0x00000343: 04 DW_LNS_set_file (2)
+0x00000345: 00 DW_LNE_set_address (0x000000000000039c)
+0x0000034c: 03 DW_LNS_advance_line (152)
+0x0000034f: 01 DW_LNS_copy
+ 0x000000000000039c 152 0 2 0 0 is_stmt
+
+
+0x00000350: 05 DW_LNS_set_column (17)
+0x00000352: 0a DW_LNS_set_prologue_end
+0x00000353: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000354: 91 address += 9, line += 1
+ 0x00000000000003b6 153 17 2 0 0 is_stmt prologue_end
+
+0x00000355: 05 DW_LNS_set_column (12)
+0x00000357: 06 DW_LNS_negate_stmt
+0x00000358: 58 address += 5, line += 0
+ 0x00000000000003bb 153 12 2 0 0
+
+0x00000359: 03 DW_LNS_advance_line (0)
+0x0000035c: 2e address += 2, line += 0
+ 0x00000000000003bd 0 12 2 0 0
+
+0x0000035d: 05 DW_LNS_set_column (28)
+0x0000035f: 03 DW_LNS_advance_line (153)
+0x00000362: 4a address += 4, line += 0
+ 0x00000000000003c1 153 28 2 0 0
+
+0x00000363: 05 DW_LNS_set_column (23)
+0x00000365: 58 address += 5, line += 0
+ 0x00000000000003c6 153 23 2 0 0
+
+0x00000366: 03 DW_LNS_advance_line (0)
+0x00000369: 66 address += 6, line += 0
+ 0x00000000000003cc 0 23 2 0 0
+
+0x0000036a: 05 DW_LNS_set_column (10)
+0x0000036c: 06 DW_LNS_negate_stmt
+0x0000036d: 03 DW_LNS_advance_line (155)
+0x00000370: 4a address += 4, line += 0
+ 0x00000000000003d0 155 10 2 0 0 is_stmt
+
+0x00000371: 05 DW_LNS_set_column (8)
+0x00000373: 06 DW_LNS_negate_stmt
+0x00000374: 20 address += 1, line += 0
+ 0x00000000000003d1 155 8 2 0 0
+
+0x00000375: 03 DW_LNS_advance_line (0)
+0x00000378: 2e address += 2, line += 0
+ 0x00000000000003d3 0 8 2 0 0
+
+0x00000379: 05 DW_LNS_set_column (7)
+0x0000037b: 06 DW_LNS_negate_stmt
+0x0000037c: 03 DW_LNS_advance_line (156)
+0x0000037f: 20 address += 1, line += 0
+ 0x00000000000003d4 156 7 2 0 0 is_stmt
+
+0x00000380: 06 DW_LNS_negate_stmt
+0x00000381: 03 DW_LNS_advance_line (0)
+0x00000384: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000385: 2e address += 2, line += 0
+ 0x00000000000003e7 0 7 2 0 0
+
+0x00000386: 05 DW_LNS_set_column (18)
+0x00000388: 06 DW_LNS_negate_stmt
+0x00000389: 03 DW_LNS_advance_line (94)
+0x0000038c: 3c address += 3, line += 0
+ 0x00000000000003ea 94 18 2 0 0 is_stmt
+
+0x0000038d: 05 DW_LNS_set_column (4)
+0x0000038f: 06 DW_LNS_negate_stmt
+0x00000390: 58 address += 5, line += 0
+ 0x00000000000003ef 94 4 2 0 0
+
+0x00000391: 03 DW_LNS_advance_line (0)
+0x00000394: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000395: 12 address += 0, line += 0
+ 0x0000000000000400 0 4 2 0 0
+
+0x00000396: 05 DW_LNS_set_column (29)
+0x00000398: 06 DW_LNS_negate_stmt
+0x00000399: 03 DW_LNS_advance_line (95)
+0x0000039c: 4a address += 4, line += 0
+ 0x0000000000000404 95 29 2 0 0 is_stmt
+
+0x0000039d: 05 DW_LNS_set_column (19)
+0x0000039f: 69 address += 6, line += 3
+ 0x000000000000040a 98 19 2 0 0 is_stmt
+
+0x000003a0: 05 DW_LNS_set_column (16)
+0x000003a2: 73 address += 7, line += -1
+ 0x0000000000000411 97 16 2 0 0 is_stmt
+
+0x000003a3: 73 address += 7, line += -1
+ 0x0000000000000418 96 16 2 0 0 is_stmt
+
+0x000003a4: 05 DW_LNS_set_column (28)
+0x000003a6: aa address += 11, line += -2
+ 0x0000000000000423 94 28 2 0 0 is_stmt
+
+0x000003a7: 05 DW_LNS_set_column (18)
+0x000003a9: 06 DW_LNS_negate_stmt
+0x000003aa: 58 address += 5, line += 0
+ 0x0000000000000428 94 18 2 0 0
+
+0x000003ab: 05 DW_LNS_set_column (4)
+0x000003ad: 58 address += 5, line += 0
+ 0x000000000000042d 94 4 2 0 0
+
+0x000003ae: 03 DW_LNS_advance_line (0)
+0x000003b1: 4a address += 4, line += 0
+ 0x0000000000000431 0 4 2 0 0
+
+0x000003b2: 05 DW_LNS_set_column (27)
+0x000003b4: 06 DW_LNS_negate_stmt
+0x000003b5: 03 DW_LNS_advance_line (102)
+0x000003b8: 4a address += 4, line += 0
+ 0x0000000000000435 102 27 2 0 0 is_stmt
+
+0x000003b9: 05 DW_LNS_set_column (18)
+0x000003bb: 06 DW_LNS_negate_stmt
+0x000003bc: 58 address += 5, line += 0
+ 0x000000000000043a 102 18 2 0 0
+
+0x000003bd: 06 DW_LNS_negate_stmt
+0x000003be: 9f address += 10, line += 1
+ 0x0000000000000444 103 18 2 0 0 is_stmt
+
+0x000003bf: 06 DW_LNS_negate_stmt
+0x000003c0: 03 DW_LNS_advance_line (0)
+0x000003c3: 9e address += 10, line += 0
+ 0x000000000000044e 0 18 2 0 0
+
+0x000003c4: 06 DW_LNS_negate_stmt
+0x000003c5: 03 DW_LNS_advance_line (105)
+0x000003c8: 82 address += 8, line += 0
+ 0x0000000000000456 105 18 2 0 0 is_stmt
+
+0x000003c9: 05 DW_LNS_set_column (4)
+0x000003cb: 06 DW_LNS_negate_stmt
+0x000003cc: 58 address += 5, line += 0
+ 0x000000000000045b 105 4 2 0 0
+
+0x000003cd: 03 DW_LNS_advance_line (0)
+0x000003d0: 2e address += 2, line += 0
+ 0x000000000000045d 0 4 2 0 0
+
+0x000003d1: 05 DW_LNS_set_column (7)
+0x000003d3: 06 DW_LNS_negate_stmt
+0x000003d4: 03 DW_LNS_advance_line (106)
+0x000003d7: 2e address += 2, line += 0
+ 0x000000000000045f 106 7 2 0 0 is_stmt
+
+0x000003d8: 05 DW_LNS_set_column (16)
+0x000003da: 06 DW_LNS_negate_stmt
+0x000003db: 82 address += 8, line += 0
+ 0x0000000000000467 106 16 2 0 0
+
+0x000003dc: 05 DW_LNS_set_column (24)
+0x000003de: 06 DW_LNS_negate_stmt
+0x000003df: 57 address += 5, line += -1
+ 0x000000000000046c 105 24 2 0 0 is_stmt
+
+0x000003e0: 05 DW_LNS_set_column (18)
+0x000003e2: 06 DW_LNS_negate_stmt
+0x000003e3: 58 address += 5, line += 0
+ 0x0000000000000471 105 18 2 0 0
+
+0x000003e4: 03 DW_LNS_advance_line (0)
+0x000003e7: 74 address += 7, line += 0
+ 0x0000000000000478 0 18 2 0 0
+
+0x000003e8: 05 DW_LNS_set_column (13)
+0x000003ea: 06 DW_LNS_negate_stmt
+0x000003eb: 03 DW_LNS_advance_line (112)
+0x000003ee: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x000003ef: d6 address += 14, line += 0
+ 0x0000000000000497 112 13 2 0 0 is_stmt
+
+0x000003f0: 05 DW_LNS_set_column (26)
+0x000003f2: 06 DW_LNS_negate_stmt
+0x000003f3: 2e address += 2, line += 0
+ 0x0000000000000499 112 26 2 0 0
+
+0x000003f4: 05 DW_LNS_set_column (35)
+0x000003f6: c8 address += 13, line += 0
+ 0x00000000000004a6 112 35 2 0 0
+
+0x000003f7: 05 DW_LNS_set_column (13)
+0x000003f9: 20 address += 1, line += 0
+ 0x00000000000004a7 112 13 2 0 0
+
+0x000003fa: 05 DW_LNS_set_column (30)
+0x000003fc: 06 DW_LNS_negate_stmt
+0x000003fd: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x000003fe: 49 address += 4, line += -1
+ 0x00000000000004bc 111 30 2 0 0 is_stmt
+
+0x000003ff: 05 DW_LNS_set_column (24)
+0x00000401: 06 DW_LNS_negate_stmt
+0x00000402: 58 address += 5, line += 0
+ 0x00000000000004c1 111 24 2 0 0
+
+0x00000403: 05 DW_LNS_set_column (10)
+0x00000405: 58 address += 5, line += 0
+ 0x00000000000004c6 111 10 2 0 0
+
+0x00000406: 06 DW_LNS_negate_stmt
+0x00000407: 5a address += 5, line += 2
+ 0x00000000000004cb 113 10 2 0 0 is_stmt
+
+0x00000408: 06 DW_LNS_negate_stmt
+0x00000409: 03 DW_LNS_advance_line (0)
+0x0000040c: 74 address += 7, line += 0
+ 0x00000000000004d2 0 10 2 0 0
+
+0x0000040d: 05 DW_LNS_set_column (16)
+0x0000040f: 06 DW_LNS_negate_stmt
+0x00000410: 03 DW_LNS_advance_line (118)
+0x00000413: 2e address += 2, line += 0
+ 0x00000000000004d4 118 16 2 0 0 is_stmt
+
+0x00000414: 05 DW_LNS_set_column (7)
+0x00000416: 06 DW_LNS_negate_stmt
+0x00000417: 58 address += 5, line += 0
+ 0x00000000000004d9 118 7 2 0 0
+
+0x00000418: 03 DW_LNS_advance_line (0)
+0x0000041b: 2e address += 2, line += 0
+ 0x00000000000004db 0 7 2 0 0
+
+0x0000041c: 05 DW_LNS_set_column (10)
+0x0000041e: 06 DW_LNS_negate_stmt
+0x0000041f: 03 DW_LNS_advance_line (119)
+0x00000422: 2e address += 2, line += 0
+ 0x00000000000004dd 119 10 2 0 0 is_stmt
+
+0x00000423: 05 DW_LNS_set_column (18)
+0x00000425: 06 DW_LNS_negate_stmt
+0x00000426: 2e address += 2, line += 0
+ 0x00000000000004df 119 18 2 0 0
+
+0x00000427: 05 DW_LNS_set_column (10)
+0x00000429: 90 address += 9, line += 0
+ 0x00000000000004e8 119 10 2 0 0
+
+0x0000042a: 05 DW_LNS_set_column (23)
+0x0000042c: 2e address += 2, line += 0
+ 0x00000000000004ea 119 23 2 0 0
+
+0x0000042d: 05 DW_LNS_set_column (16)
+0x0000042f: 06 DW_LNS_negate_stmt
+0x00000430: 57 address += 5, line += -1
+ 0x00000000000004ef 118 16 2 0 0 is_stmt
+
+0x00000431: 05 DW_LNS_set_column (7)
+0x00000433: 06 DW_LNS_negate_stmt
+0x00000434: ac address += 11, line += 0
+ 0x00000000000004fa 118 7 2 0 0
+
+0x00000435: 05 DW_LNS_set_column (16)
+0x00000437: 06 DW_LNS_negate_stmt
+0x00000438: 6a address += 6, line += 4
+ 0x0000000000000500 122 16 2 0 0 is_stmt
+
+0x00000439: 06 DW_LNS_negate_stmt
+0x0000043a: 03 DW_LNS_advance_line (0)
+0x0000043d: 74 address += 7, line += 0
+ 0x0000000000000507 0 16 2 0 0
+
+0x0000043e: 05 DW_LNS_set_column (22)
+0x00000440: 06 DW_LNS_negate_stmt
+0x00000441: 03 DW_LNS_advance_line (125)
+0x00000444: c8 address += 13, line += 0
+ 0x0000000000000514 125 22 2 0 0 is_stmt
+
+0x00000445: 06 DW_LNS_negate_stmt
+0x00000446: 03 DW_LNS_advance_line (0)
+0x00000449: 74 address += 7, line += 0
+ 0x000000000000051b 0 22 2 0 0
+
+0x0000044a: 05 DW_LNS_set_column (27)
+0x0000044c: 06 DW_LNS_negate_stmt
+0x0000044d: 03 DW_LNS_advance_line (126)
+0x00000450: 2e address += 2, line += 0
+ 0x000000000000051d 126 27 2 0 0 is_stmt
+
+0x00000451: 05 DW_LNS_set_column (13)
+0x00000453: 06 DW_LNS_negate_stmt
+0x00000454: 58 address += 5, line += 0
+ 0x0000000000000522 126 13 2 0 0
+
+0x00000455: 03 DW_LNS_advance_line (0)
+0x00000458: 2e address += 2, line += 0
+ 0x0000000000000524 0 13 2 0 0
+
+0x00000459: 05 DW_LNS_set_column (16)
+0x0000045b: 06 DW_LNS_negate_stmt
+0x0000045c: 03 DW_LNS_advance_line (127)
+0x0000045f: 2e address += 2, line += 0
+ 0x0000000000000526 127 16 2 0 0 is_stmt
+
+0x00000460: 05 DW_LNS_set_column (27)
+0x00000462: 06 DW_LNS_negate_stmt
+0x00000463: 82 address += 8, line += 0
+ 0x000000000000052e 127 27 2 0 0
+
+0x00000464: 05 DW_LNS_set_column (35)
+0x00000466: 2e address += 2, line += 0
+ 0x0000000000000530 127 35 2 0 0
+
+0x00000467: 05 DW_LNS_set_column (27)
+0x00000469: 90 address += 9, line += 0
+ 0x0000000000000539 127 27 2 0 0
+
+0x0000046a: 05 DW_LNS_set_column (25)
+0x0000046c: 58 address += 5, line += 0
+ 0x000000000000053e 127 25 2 0 0
+
+0x0000046d: 05 DW_LNS_set_column (27)
+0x0000046f: 06 DW_LNS_negate_stmt
+0x00000470: 3b address += 3, line += -1
+ 0x0000000000000541 126 27 2 0 0 is_stmt
+
+0x00000471: 05 DW_LNS_set_column (13)
+0x00000473: 06 DW_LNS_negate_stmt
+0x00000474: 58 address += 5, line += 0
+ 0x0000000000000546 126 13 2 0 0
+
+0x00000475: 05 DW_LNS_set_column (0)
+0x00000477: 03 DW_LNS_advance_line (0)
+0x0000047a: 3c address += 3, line += 0
+ 0x0000000000000549 0 0 2 0 0
+
+0x0000047b: 05 DW_LNS_set_column (13)
+0x0000047d: 06 DW_LNS_negate_stmt
+0x0000047e: 03 DW_LNS_advance_line (128)
+0x00000481: 58 address += 5, line += 0
+ 0x000000000000054e 128 13 2 0 0 is_stmt
+
+0x00000482: 05 DW_LNS_set_column (22)
+0x00000484: 06 DW_LNS_negate_stmt
+0x00000485: 82 address += 8, line += 0
+ 0x0000000000000556 128 22 2 0 0
+
+0x00000486: 05 DW_LNS_set_column (16)
+0x00000488: 06 DW_LNS_negate_stmt
+0x00000489: 5a address += 5, line += 2
+ 0x000000000000055b 130 16 2 0 0 is_stmt
+
+0x0000048a: 05 DW_LNS_set_column (14)
+0x0000048c: 06 DW_LNS_negate_stmt
+0x0000048d: 82 address += 8, line += 0
+ 0x0000000000000563 130 14 2 0 0
+
+0x0000048e: 05 DW_LNS_set_column (25)
+0x00000490: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000491: 12 address += 0, line += 0
+ 0x0000000000000574 130 25 2 0 0
+
+0x00000492: 05 DW_LNS_set_column (14)
+0x00000494: 58 address += 5, line += 0
+ 0x0000000000000579 130 14 2 0 0
+
+0x00000495: 05 DW_LNS_set_column (11)
+0x00000497: 06 DW_LNS_negate_stmt
+0x00000498: 31 address += 2, line += 3
+ 0x000000000000057b 133 11 2 0 0 is_stmt
+
+0x00000499: 05 DW_LNS_set_column (16)
+0x0000049b: 03 DW_LNS_advance_line (122)
+0x0000049d: 58 address += 5, line += 0
+ 0x0000000000000580 122 16 2 0 0 is_stmt
+
+0x0000049e: 05 DW_LNS_set_column (14)
+0x000004a0: 06 DW_LNS_negate_stmt
+0x000004a1: 58 address += 5, line += 0
+ 0x0000000000000585 122 14 2 0 0
+
+0x000004a2: 03 DW_LNS_advance_line (0)
+0x000004a5: 4a address += 4, line += 0
+ 0x0000000000000589 0 14 2 0 0
+
+0x000004a6: 06 DW_LNS_negate_stmt
+0x000004a7: 03 DW_LNS_advance_line (130)
+0x000004aa: 20 address += 1, line += 0
+ 0x000000000000058a 130 14 2 0 0 is_stmt
+
+0x000004ab: 05 DW_LNS_set_column (11)
+0x000004ad: 03 DW_LNS_advance_line (110)
+0x000004af: 20 address += 1, line += 0
+ 0x000000000000058b 110 11 2 0 0 is_stmt
+
+0x000004b0: 06 DW_LNS_negate_stmt
+0x000004b1: 03 DW_LNS_advance_line (0)
+0x000004b4: 74 address += 7, line += 0
+ 0x0000000000000592 0 11 2 0 0
+
+0x000004b5: 05 DW_LNS_set_column (10)
+0x000004b7: 06 DW_LNS_negate_stmt
+0x000004b8: 03 DW_LNS_advance_line (113)
+0x000004bb: 66 address += 6, line += 0
+ 0x0000000000000598 113 10 2 0 0 is_stmt
+
+0x000004bc: 06 DW_LNS_negate_stmt
+0x000004bd: 03 DW_LNS_advance_line (0)
+0x000004c0: 74 address += 7, line += 0
+ 0x000000000000059f 0 10 2 0 0
+
+0x000004c1: 05 DW_LNS_set_column (16)
+0x000004c3: 06 DW_LNS_negate_stmt
+0x000004c4: 03 DW_LNS_advance_line (118)
+0x000004c7: 2e address += 2, line += 0
+ 0x00000000000005a1 118 16 2 0 0 is_stmt
+
+0x000004c8: 05 DW_LNS_set_column (7)
+0x000004ca: 06 DW_LNS_negate_stmt
+0x000004cb: 58 address += 5, line += 0
+ 0x00000000000005a6 118 7 2 0 0
+
+0x000004cc: 03 DW_LNS_advance_line (0)
+0x000004cf: 2e address += 2, line += 0
+ 0x00000000000005a8 0 7 2 0 0
+
+0x000004d0: 05 DW_LNS_set_column (10)
+0x000004d2: 06 DW_LNS_negate_stmt
+0x000004d3: 03 DW_LNS_advance_line (119)
+0x000004d6: 2e address += 2, line += 0
+ 0x00000000000005aa 119 10 2 0 0 is_stmt
+
+0x000004d7: 05 DW_LNS_set_column (18)
+0x000004d9: 06 DW_LNS_negate_stmt
+0x000004da: 2e address += 2, line += 0
+ 0x00000000000005ac 119 18 2 0 0
+
+0x000004db: 05 DW_LNS_set_column (10)
+0x000004dd: 90 address += 9, line += 0
+ 0x00000000000005b5 119 10 2 0 0
+
+0x000004de: 05 DW_LNS_set_column (23)
+0x000004e0: 2e address += 2, line += 0
+ 0x00000000000005b7 119 23 2 0 0
+
+0x000004e1: 05 DW_LNS_set_column (16)
+0x000004e3: 06 DW_LNS_negate_stmt
+0x000004e4: 57 address += 5, line += -1
+ 0x00000000000005bc 118 16 2 0 0 is_stmt
+
+0x000004e5: 05 DW_LNS_set_column (0)
+0x000004e7: 06 DW_LNS_negate_stmt
+0x000004e8: 03 DW_LNS_advance_line (0)
+0x000004eb: 74 address += 7, line += 0
+ 0x00000000000005c3 0 0 2 0 0
+
+0x000004ec: 05 DW_LNS_set_column (7)
+0x000004ee: 03 DW_LNS_advance_line (118)
+0x000004f1: 4a address += 4, line += 0
+ 0x00000000000005c7 118 7 2 0 0
+
+0x000004f2: 05 DW_LNS_set_column (16)
+0x000004f4: 06 DW_LNS_negate_stmt
+0x000004f5: 6a address += 6, line += 4
+ 0x00000000000005cd 122 16 2 0 0 is_stmt
+
+0x000004f6: 05 DW_LNS_set_column (14)
+0x000004f8: 06 DW_LNS_negate_stmt
+0x000004f9: 58 address += 5, line += 0
+ 0x00000000000005d2 122 14 2 0 0
+
+0x000004fa: 03 DW_LNS_advance_line (0)
+0x000004fd: 2e address += 2, line += 0
+ 0x00000000000005d4 0 14 2 0 0
+
+0x000004fe: 05 DW_LNS_set_column (22)
+0x00000500: 06 DW_LNS_negate_stmt
+0x00000501: 03 DW_LNS_advance_line (125)
+0x00000504: 74 address += 7, line += 0
+ 0x00000000000005db 125 22 2 0 0 is_stmt
+
+0x00000505: 06 DW_LNS_negate_stmt
+0x00000506: 03 DW_LNS_advance_line (0)
+0x00000509: 90 address += 9, line += 0
+ 0x00000000000005e4 0 22 2 0 0
+
+0x0000050a: 05 DW_LNS_set_column (27)
+0x0000050c: 06 DW_LNS_negate_stmt
+0x0000050d: 03 DW_LNS_advance_line (126)
+0x00000510: 66 address += 6, line += 0
+ 0x00000000000005ea 126 27 2 0 0 is_stmt
+
+0x00000511: 05 DW_LNS_set_column (13)
+0x00000513: 06 DW_LNS_negate_stmt
+0x00000514: 58 address += 5, line += 0
+ 0x00000000000005ef 126 13 2 0 0
+
+0x00000515: 03 DW_LNS_advance_line (0)
+0x00000518: 2e address += 2, line += 0
+ 0x00000000000005f1 0 13 2 0 0
+
+0x00000519: 05 DW_LNS_set_column (16)
+0x0000051b: 06 DW_LNS_negate_stmt
+0x0000051c: 03 DW_LNS_advance_line (127)
+0x0000051f: 2e address += 2, line += 0
+ 0x00000000000005f3 127 16 2 0 0 is_stmt
+
+0x00000520: 05 DW_LNS_set_column (27)
+0x00000522: 06 DW_LNS_negate_stmt
+0x00000523: 82 address += 8, line += 0
+ 0x00000000000005fb 127 27 2 0 0
+
+0x00000524: 05 DW_LNS_set_column (35)
+0x00000526: 2e address += 2, line += 0
+ 0x00000000000005fd 127 35 2 0 0
+
+0x00000527: 05 DW_LNS_set_column (27)
+0x00000529: 90 address += 9, line += 0
+ 0x0000000000000606 127 27 2 0 0
+
+0x0000052a: 05 DW_LNS_set_column (25)
+0x0000052c: 58 address += 5, line += 0
+ 0x000000000000060b 127 25 2 0 0
+
+0x0000052d: 05 DW_LNS_set_column (27)
+0x0000052f: 06 DW_LNS_negate_stmt
+0x00000530: 3b address += 3, line += -1
+ 0x000000000000060e 126 27 2 0 0 is_stmt
+
+0x00000531: 05 DW_LNS_set_column (13)
+0x00000533: 06 DW_LNS_negate_stmt
+0x00000534: 58 address += 5, line += 0
+ 0x0000000000000613 126 13 2 0 0
+
+0x00000535: 05 DW_LNS_set_column (0)
+0x00000537: 03 DW_LNS_advance_line (0)
+0x0000053a: 3c address += 3, line += 0
+ 0x0000000000000616 0 0 2 0 0
+
+0x0000053b: 05 DW_LNS_set_column (13)
+0x0000053d: 06 DW_LNS_negate_stmt
+0x0000053e: 03 DW_LNS_advance_line (128)
+0x00000541: 58 address += 5, line += 0
+ 0x000000000000061b 128 13 2 0 0 is_stmt
+
+0x00000542: 05 DW_LNS_set_column (22)
+0x00000544: 06 DW_LNS_negate_stmt
+0x00000545: 82 address += 8, line += 0
+ 0x0000000000000623 128 22 2 0 0
+
+0x00000546: 05 DW_LNS_set_column (16)
+0x00000548: 06 DW_LNS_negate_stmt
+0x00000549: 5a address += 5, line += 2
+ 0x0000000000000628 130 16 2 0 0 is_stmt
+
+0x0000054a: 05 DW_LNS_set_column (14)
+0x0000054c: 06 DW_LNS_negate_stmt
+0x0000054d: 82 address += 8, line += 0
+ 0x0000000000000630 130 14 2 0 0
+
+0x0000054e: 05 DW_LNS_set_column (25)
+0x00000550: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000551: 12 address += 0, line += 0
+ 0x0000000000000641 130 25 2 0 0
+
+0x00000552: 05 DW_LNS_set_column (14)
+0x00000554: 58 address += 5, line += 0
+ 0x0000000000000646 130 14 2 0 0
+
+0x00000555: 05 DW_LNS_set_column (11)
+0x00000557: 06 DW_LNS_negate_stmt
+0x00000558: 31 address += 2, line += 3
+ 0x0000000000000648 133 11 2 0 0 is_stmt
+
+0x00000559: 05 DW_LNS_set_column (16)
+0x0000055b: 03 DW_LNS_advance_line (122)
+0x0000055d: 58 address += 5, line += 0
+ 0x000000000000064d 122 16 2 0 0 is_stmt
+
+0x0000055e: 05 DW_LNS_set_column (14)
+0x00000560: 06 DW_LNS_negate_stmt
+0x00000561: 58 address += 5, line += 0
+ 0x0000000000000652 122 14 2 0 0
+
+0x00000562: 03 DW_LNS_advance_line (0)
+0x00000565: 4a address += 4, line += 0
+ 0x0000000000000656 0 14 2 0 0
+
+0x00000566: 06 DW_LNS_negate_stmt
+0x00000567: 03 DW_LNS_advance_line (130)
+0x0000056a: 20 address += 1, line += 0
+ 0x0000000000000657 130 14 2 0 0 is_stmt
+
+0x0000056b: 05 DW_LNS_set_column (11)
+0x0000056d: 03 DW_LNS_advance_line (110)
+0x0000056f: 20 address += 1, line += 0
+ 0x0000000000000658 110 11 2 0 0 is_stmt
+
+0x00000570: 05 DW_LNS_set_column (4)
+0x00000572: 03 DW_LNS_advance_line (138)
+0x00000574: 66 address += 6, line += 0
+ 0x000000000000065e 138 4 2 0 0 is_stmt
+
+0x00000575: 83 address += 8, line += 1
+ 0x0000000000000666 139 4 2 0 0 is_stmt
+
+0x00000576: 06 DW_LNS_negate_stmt
+0x00000577: 03 DW_LNS_advance_line (0)
+0x0000057a: 82 address += 8, line += 0
+ 0x000000000000066e 0 4 2 0 0
+
+0x0000057b: 06 DW_LNS_negate_stmt
+0x0000057c: 03 DW_LNS_advance_line (141)
+0x0000057f: 82 address += 8, line += 0
+ 0x0000000000000676 141 4 2 0 0 is_stmt
+
+0x00000580: 06 DW_LNS_negate_stmt
+0x00000581: 03 DW_LNS_advance_line (0)
+0x00000584: 74 address += 7, line += 0
+ 0x000000000000067d 0 4 2 0 0
+
+0x00000585: 05 DW_LNS_set_column (20)
+0x00000587: 06 DW_LNS_negate_stmt
+0x00000588: 03 DW_LNS_advance_line (142)
+0x0000058b: 82 address += 8, line += 0
+ 0x0000000000000685 142 20 2 0 0 is_stmt
+
+0x0000058c: be address += 12, line += 4
+ 0x0000000000000691 146 20 2 0 0 is_stmt
+
+0x0000058d: 05 DW_LNS_set_column (7)
+0x0000058f: 75 address += 7, line += 1
+ 0x0000000000000698 147 7 2 0 0 is_stmt
+
+0x00000590: 05 DW_LNS_set_column (11)
+0x00000592: 7e address += 8, line += -4
+ 0x00000000000006a0 143 11 2 0 0 is_stmt
+
+0x00000593: 05 DW_LNS_set_column (20)
+0x00000595: 06 DW_LNS_negate_stmt
+0x00000596: 4a address += 4, line += 0
+ 0x00000000000006a4 143 20 2 0 0
+
+0x00000597: 05 DW_LNS_set_column (11)
+0x00000599: 58 address += 5, line += 0
+ 0x00000000000006a9 143 11 2 0 0
+
+0x0000059a: 05 DW_LNS_set_column (4)
+0x0000059c: 06 DW_LNS_negate_stmt
+0x0000059d: 72 address += 7, line += -2
+ 0x00000000000006b0 141 4 2 0 0 is_stmt
+
+0x0000059e: 03 DW_LNS_advance_line (159)
+0x000005a0: 66 address += 6, line += 0
+ 0x00000000000006b6 159 4 2 0 0 is_stmt
+
+0x000005a1: 06 DW_LNS_negate_stmt
+0x000005a2: 03 DW_LNS_advance_line (0)
+0x000005a5: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x000005a6: ba address += 12, line += 0
+ 0x00000000000006d3 0 4 2 0 0
+
+0x000005a7: 05 DW_LNS_set_column (1)
+0x000005a9: 06 DW_LNS_negate_stmt
+0x000005aa: 03 DW_LNS_advance_line (161)
+0x000005ad: 20 address += 1, line += 0
+ 0x00000000000006d4 161 1 2 0 0 is_stmt
+
+0x000005ae: 02 DW_LNS_advance_pc (14)
+0x000005b0: 00 DW_LNE_end_sequence
+ 0x00000000000006e2 161 1 2 0 0 is_stmt end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)"
+0x00000095: "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp"
+0x000000cf: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000fa: "free"
+0x000000ff: "atoi"
+0x00000104: "int"
+0x00000108: "char"
+0x0000010d: "i"
+0x0000010f: "n"
+0x00000111: "next"
+0x00000116: "worker_args"
+0x00000122: "std"
+0x00000126: "decltype(nullptr)"
+0x00000138: "nullptr_t"
+0x00000142: "_ZL8fannkuchi"
+0x00000150: "fannkuch"
+0x00000159: "showmax"
+0x00000161: "args"
+0x00000166: "perm1"
+0x0000016c: "count"
+0x00000172: "r"
+0x00000174: "maxflips"
+0x0000017d: "flips"
+0x00000183: "targs"
+0x00000189: "cleanup"
+0x00000191: "p0"
+0x00000194: "_Z15fannkuch_workerPv"
+0x000001aa: "fannkuch_worker"
+0x000001ba: "main"
+0x000001bf: "_arg"
+0x000001c4: "perm"
+0x000001c9: "k"
+0x000001cb: "j"
+0x000001cd: "tmp"
+0x000001d1: "argc"
+0x000001d6: "argv"
+
+.debug_ranges contents:
+00000000 00000182 000001c0
+00000000 000001ea 000001f3
+00000000 0000030b 00000349
+00000000 00000373 0000037c
+00000000 <End of list>
+00000028 00000514 0000055b
+00000028 000005db 00000628
+00000028 <End of list>
+00000040 00000003 0000039a
+00000040 0000039c 000006e2
+00000040 <End of list>
+DWARF debug info
+================
+
+Contains section .debug_info (812 bytes)
+Contains section .debug_loc (345 bytes)
+Contains section .debug_ranges (88 bytes)
+Contains section .debug_abbrev (352 bytes)
+Contains section .debug_line (4227 bytes)
+Contains section .debug_str (475 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_ranges DW_FORM_sec_offset
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_pointer_type DW_CHILDREN_no
+
+[5] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+[7] DW_TAG_pointer_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[8] DW_TAG_const_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[9] DW_TAG_structure_type DW_CHILDREN_yes
+ DW_AT_calling_convention DW_FORM_data1
+ DW_AT_name DW_FORM_strp
+ DW_AT_byte_size DW_FORM_data1
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[10] DW_TAG_member DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_type DW_FORM_ref4
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_data_member_location DW_FORM_data1
+
+[11] DW_TAG_namespace DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+
+[12] DW_TAG_typedef DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[13] DW_TAG_unspecified_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+
+[14] DW_TAG_imported_declaration DW_CHILDREN_no
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_import DW_FORM_ref4
+
+[15] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[16] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[17] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[18] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[19] DW_TAG_lexical_block DW_CHILDREN_yes
+ DW_AT_ranges DW_FORM_sec_offset
+
+[20] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_low_pc DW_FORM_addr
+
+[21] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+[22] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_inline DW_FORM_data1
+
+[23] DW_TAG_label DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[24] DW_TAG_lexical_block DW_CHILDREN_yes
+
+[25] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[26] DW_TAG_inlined_subroutine DW_CHILDREN_yes
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_call_file DW_FORM_data1
+ DW_AT_call_line DW_FORM_data1
+ DW_AT_call_column DW_FORM_data1
+
+[27] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[28] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[29] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[30] DW_TAG_label DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000328 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x0000032c)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C_plus_plus)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x000000cf] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+ DW_AT_ranges [DW_FORM_sec_offset] (0x00000040
+ [0x00000003, 0x0000039a)
+ [0x0000039c, 0x000006e2))
+
+.debug_loc contents:
+0x00000000:
+ [0xffffffff, 0x00000003):
+ [0x00000000, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000001d:
+ [0xffffffff, 0x00000003):
+ [0x00000007, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000ec, 0x000000f5): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000179, 0x00000186): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000275, 0x0000027e): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000302, 0x0000030f): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000007b:
+ [0xffffffff, 0x00000003):
+ [0x000000cf, 0x000000e6): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+
+0x000000a5:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +30, DW_OP_stack_value
+
+0x000000c2:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_lit0, DW_OP_stack_value
+
+0x000000de:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000099, 0x000000c1): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000f5, 0x000000f9): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000178, 0x00000188): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001fa, 0x0000020c): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000241, 0x00000255): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000013c:
+ [0xffffffff, 0x0000039c):
+ [0x000002d6, 0x000002e1): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x0000107f
+ version: 4
+ prologue_length: 0x000000d7
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+include_directories[ 1] = "/usr/local/google/home/azakai/Dev"
+file_names[ 1]:
+ name: "emscripten/system/include/libc/stdlib.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 2]:
+ name: "emscripten/fannkuch.cpp"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 3]:
+ name: "emscripten/system/include/libcxx/__nullptr"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 4]:
+ name: "emscripten/system/include/libcxx/stddef.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+0x000000e1: 00 DW_LNE_set_address (0x000000000000000a)
+0x000000e8: 03 DW_LNS_advance_line (33)
+0x000000ea: 05 DW_LNS_set_column (14)
+0x000000ec: 04 DW_LNS_set_file (2)
+0x000000ee: 0a DW_LNS_set_prologue_end
+0x000000ef: 00 DW_LNE_end_sequence
+ 0x000000000000000a 33 14 2 0 0 is_stmt end_sequence
+
+0x000000f2: 00 DW_LNE_set_address (0x0000000000000013)
+0x000000f9: 03 DW_LNS_advance_line (34)
+0x000000fb: 05 DW_LNS_set_column (27)
+0x000000fd: 04 DW_LNS_set_file (2)
+0x000000ff: 0a DW_LNS_set_prologue_end
+0x00000100: 00 DW_LNE_end_sequence
+ 0x0000000000000013 34 27 2 0 0 is_stmt end_sequence
+
+0x00000103: 00 DW_LNE_set_address (0x0000000000000014)
+0x0000010a: 03 DW_LNS_advance_line (34)
+0x0000010c: 05 DW_LNS_set_column (18)
+0x0000010e: 04 DW_LNS_set_file (2)
+0x00000110: 06 DW_LNS_negate_stmt
+0x00000111: 0a DW_LNS_set_prologue_end
+0x00000112: 00 DW_LNE_end_sequence
+ 0x0000000000000014 34 18 2 0 0 end_sequence
+
+0x00000115: 00 DW_LNE_set_address (0x000000000000001a)
+0x0000011c: 03 DW_LNS_advance_line (35)
+0x0000011e: 05 DW_LNS_set_column (17)
+0x00000120: 04 DW_LNS_set_file (2)
+0x00000122: 0a DW_LNS_set_prologue_end
+0x00000123: 00 DW_LNE_end_sequence
+ 0x000000000000001a 35 17 2 0 0 is_stmt end_sequence
+
+0x00000126: 00 DW_LNE_set_address (0x0000000000000020)
+0x0000012d: 03 DW_LNS_advance_line (36)
+0x0000012f: 05 DW_LNS_set_column (18)
+0x00000131: 04 DW_LNS_set_file (2)
+0x00000133: 0a DW_LNS_set_prologue_end
+0x00000134: 00 DW_LNE_end_sequence
+ 0x0000000000000020 36 18 2 0 0 is_stmt end_sequence
+
+0x00000137: 00 DW_LNE_set_address (0x000000000000002c)
+0x0000013e: 03 DW_LNS_advance_line (37)
+0x00000140: 05 DW_LNS_set_column (18)
+0x00000142: 04 DW_LNS_set_file (2)
+0x00000144: 0a DW_LNS_set_prologue_end
+0x00000145: 00 DW_LNE_end_sequence
+ 0x000000000000002c 37 18 2 0 0 is_stmt end_sequence
+
+0x00000148: 00 DW_LNE_set_address (0x0000000000000031)
+0x0000014f: 03 DW_LNS_advance_line (37)
+0x00000151: 05 DW_LNS_set_column (4)
+0x00000153: 04 DW_LNS_set_file (2)
+0x00000155: 06 DW_LNS_negate_stmt
+0x00000156: 0a DW_LNS_set_prologue_end
+0x00000157: 00 DW_LNE_end_sequence
+ 0x0000000000000031 37 4 2 0 0 end_sequence
+
+0x0000015a: 00 DW_LNE_set_address (0x0000000000000035)
+0x00000161: 03 DW_LNS_advance_line (38)
+0x00000163: 05 DW_LNS_set_column (7)
+0x00000165: 04 DW_LNS_set_file (2)
+0x00000167: 0a DW_LNS_set_prologue_end
+0x00000168: 00 DW_LNE_end_sequence
+ 0x0000000000000035 38 7 2 0 0 is_stmt end_sequence
+
+0x0000016b: 00 DW_LNE_set_address (0x000000000000003d)
+0x00000172: 03 DW_LNS_advance_line (38)
+0x00000174: 05 DW_LNS_set_column (16)
+0x00000176: 04 DW_LNS_set_file (2)
+0x00000178: 06 DW_LNS_negate_stmt
+0x00000179: 0a DW_LNS_set_prologue_end
+0x0000017a: 00 DW_LNE_end_sequence
+ 0x000000000000003d 38 16 2 0 0 end_sequence
+
+0x0000017d: 00 DW_LNE_set_address (0x0000000000000042)
+0x00000184: 03 DW_LNS_advance_line (37)
+0x00000186: 05 DW_LNS_set_column (24)
+0x00000188: 04 DW_LNS_set_file (2)
+0x0000018a: 0a DW_LNS_set_prologue_end
+0x0000018b: 00 DW_LNE_end_sequence
+ 0x0000000000000042 37 24 2 0 0 is_stmt end_sequence
+
+0x0000018e: 00 DW_LNE_set_address (0x0000000000000047)
+0x00000195: 03 DW_LNS_advance_line (37)
+0x00000197: 05 DW_LNS_set_column (18)
+0x00000199: 04 DW_LNS_set_file (2)
+0x0000019b: 06 DW_LNS_negate_stmt
+0x0000019c: 0a DW_LNS_set_prologue_end
+0x0000019d: 00 DW_LNE_end_sequence
+ 0x0000000000000047 37 18 2 0 0 end_sequence
+
+0x000001a0: 00 DW_LNE_set_address (0x000000000000004c)
+0x000001a7: 03 DW_LNS_advance_line (37)
+0x000001a9: 05 DW_LNS_set_column (4)
+0x000001ab: 04 DW_LNS_set_file (2)
+0x000001ad: 06 DW_LNS_negate_stmt
+0x000001ae: 0a DW_LNS_set_prologue_end
+0x000001af: 00 DW_LNE_end_sequence
+ 0x000000000000004c 37 4 2 0 0 end_sequence
+
+0x000001b2: 00 DW_LNE_set_address (0x000000000000004f)
+0x000001b9: 03 DW_LNS_advance_line (39)
+0x000001bb: 05 DW_LNS_set_column (4)
+0x000001bd: 04 DW_LNS_set_file (2)
+0x000001bf: 0a DW_LNS_set_prologue_end
+0x000001c0: 00 DW_LNE_end_sequence
+ 0x000000000000004f 39 4 2 0 0 is_stmt end_sequence
+
+0x000001c3: 00 DW_LNE_set_address (0x0000000000000051)
+0x000001ca: 03 DW_LNS_advance_line (39)
+0x000001cc: 05 DW_LNS_set_column (16)
+0x000001ce: 04 DW_LNS_set_file (2)
+0x000001d0: 06 DW_LNS_negate_stmt
+0x000001d1: 0a DW_LNS_set_prologue_end
+0x000001d2: 00 DW_LNE_end_sequence
+ 0x0000000000000051 39 16 2 0 0 end_sequence
+
+0x000001d5: 00 DW_LNE_set_address (0x000000000000005a)
+0x000001dc: 03 DW_LNS_advance_line (39)
+0x000001de: 05 DW_LNS_set_column (4)
+0x000001e0: 04 DW_LNS_set_file (2)
+0x000001e2: 06 DW_LNS_negate_stmt
+0x000001e3: 0a DW_LNS_set_prologue_end
+0x000001e4: 00 DW_LNE_end_sequence
+ 0x000000000000005a 39 4 2 0 0 end_sequence
+
+0x000001e7: 00 DW_LNE_set_address (0x000000000000005c)
+0x000001ee: 03 DW_LNS_advance_line (39)
+0x000001f0: 05 DW_LNS_set_column (23)
+0x000001f2: 04 DW_LNS_set_file (2)
+0x000001f4: 06 DW_LNS_negate_stmt
+0x000001f5: 0a DW_LNS_set_prologue_end
+0x000001f6: 00 DW_LNE_end_sequence
+ 0x000000000000005c 39 23 2 0 0 end_sequence
+
+0x000001f9: 00 DW_LNE_set_address (0x0000000000000061)
+0x00000200: 03 DW_LNS_advance_line (39)
+0x00000202: 05 DW_LNS_set_column (19)
+0x00000204: 04 DW_LNS_set_file (2)
+0x00000206: 06 DW_LNS_negate_stmt
+0x00000207: 0a DW_LNS_set_prologue_end
+0x00000208: 00 DW_LNE_end_sequence
+ 0x0000000000000061 39 19 2 0 0 end_sequence
+
+0x0000020b: 00 DW_LNE_set_address (0x0000000000000066)
+0x00000212: 03 DW_LNS_advance_line (40)
+0x00000214: 05 DW_LNS_set_column (4)
+0x00000216: 04 DW_LNS_set_file (2)
+0x00000218: 0a DW_LNS_set_prologue_end
+0x00000219: 00 DW_LNE_end_sequence
+ 0x0000000000000066 40 4 2 0 0 is_stmt end_sequence
+
+0x0000021c: 00 DW_LNE_set_address (0x000000000000006e)
+0x00000223: 03 DW_LNS_advance_line (40)
+0x00000225: 05 DW_LNS_set_column (17)
+0x00000227: 04 DW_LNS_set_file (2)
+0x00000229: 06 DW_LNS_negate_stmt
+0x0000022a: 0a DW_LNS_set_prologue_end
+0x0000022b: 00 DW_LNE_end_sequence
+ 0x000000000000006e 40 17 2 0 0 end_sequence
+
+0x0000022e: 00 DW_LNE_set_address (0x0000000000000079)
+0x00000235: 03 DW_LNS_advance_line (37)
+0x00000237: 05 DW_LNS_set_column (18)
+0x00000239: 04 DW_LNS_set_file (2)
+0x0000023b: 0a DW_LNS_set_prologue_end
+0x0000023c: 00 DW_LNE_end_sequence
+ 0x0000000000000079 37 18 2 0 0 is_stmt end_sequence
+
+0x0000023f: 00 DW_LNE_set_address (0x000000000000007e)
+0x00000246: 03 DW_LNS_advance_line (43)
+0x00000248: 05 DW_LNS_set_column (4)
+0x0000024a: 04 DW_LNS_set_file (2)
+0x0000024c: 0a DW_LNS_set_prologue_end
+0x0000024d: 00 DW_LNE_end_sequence
+ 0x000000000000007e 43 4 2 0 0 is_stmt end_sequence
+
+0x00000250: 00 DW_LNE_set_address (0x0000000000000084)
+0x00000257: 03 DW_LNS_advance_line (44)
+0x00000259: 05 DW_LNS_set_column (16)
+0x0000025b: 04 DW_LNS_set_file (2)
+0x0000025d: 0a DW_LNS_set_prologue_end
+0x0000025e: 00 DW_LNE_end_sequence
+ 0x0000000000000084 44 16 2 0 0 is_stmt end_sequence
+
+0x00000261: 00 DW_LNE_set_address (0x000000000000008d)
+0x00000268: 03 DW_LNS_advance_line (45)
+0x0000026a: 05 DW_LNS_set_column (10)
+0x0000026c: 04 DW_LNS_set_file (2)
+0x0000026e: 0a DW_LNS_set_prologue_end
+0x0000026f: 00 DW_LNE_end_sequence
+ 0x000000000000008d 45 10 2 0 0 is_stmt end_sequence
+
+0x00000272: 00 DW_LNE_set_address (0x000000000000008f)
+0x00000279: 03 DW_LNS_advance_line (45)
+0x0000027b: 05 DW_LNS_set_column (18)
+0x0000027d: 04 DW_LNS_set_file (2)
+0x0000027f: 06 DW_LNS_negate_stmt
+0x00000280: 0a DW_LNS_set_prologue_end
+0x00000281: 00 DW_LNE_end_sequence
+ 0x000000000000008f 45 18 2 0 0 end_sequence
+
+0x00000284: 00 DW_LNE_set_address (0x0000000000000098)
+0x0000028b: 03 DW_LNS_advance_line (45)
+0x0000028d: 05 DW_LNS_set_column (10)
+0x0000028f: 04 DW_LNS_set_file (2)
+0x00000291: 06 DW_LNS_negate_stmt
+0x00000292: 0a DW_LNS_set_prologue_end
+0x00000293: 00 DW_LNE_end_sequence
+ 0x0000000000000098 45 10 2 0 0 end_sequence
+
+0x00000296: 00 DW_LNE_set_address (0x000000000000009a)
+0x0000029d: 03 DW_LNS_advance_line (45)
+0x0000029f: 05 DW_LNS_set_column (23)
+0x000002a1: 04 DW_LNS_set_file (2)
+0x000002a3: 06 DW_LNS_negate_stmt
+0x000002a4: 0a DW_LNS_set_prologue_end
+0x000002a5: 00 DW_LNE_end_sequence
+ 0x000000000000009a 45 23 2 0 0 end_sequence
+
+0x000002a8: 00 DW_LNE_set_address (0x000000000000009f)
+0x000002af: 03 DW_LNS_advance_line (44)
+0x000002b1: 05 DW_LNS_set_column (16)
+0x000002b3: 04 DW_LNS_set_file (2)
+0x000002b5: 0a DW_LNS_set_prologue_end
+0x000002b6: 00 DW_LNE_end_sequence
+ 0x000000000000009f 44 16 2 0 0 is_stmt end_sequence
+
+0x000002b9: 00 DW_LNE_set_address (0x00000000000000aa)
+0x000002c0: 03 DW_LNS_advance_line (44)
+0x000002c2: 05 DW_LNS_set_column (7)
+0x000002c4: 04 DW_LNS_set_file (2)
+0x000002c6: 06 DW_LNS_negate_stmt
+0x000002c7: 0a DW_LNS_set_prologue_end
+0x000002c8: 00 DW_LNE_end_sequence
+ 0x00000000000000aa 44 7 2 0 0 end_sequence
+
+0x000002cb: 00 DW_LNE_set_address (0x00000000000000b0)
+0x000002d2: 03 DW_LNS_advance_line (46)
+0x000002d4: 05 DW_LNS_set_column (11)
+0x000002d6: 04 DW_LNS_set_file (2)
+0x000002d8: 0a DW_LNS_set_prologue_end
+0x000002d9: 00 DW_LNE_end_sequence
+ 0x00000000000000b0 46 11 2 0 0 is_stmt end_sequence
+
+0x000002dc: 00 DW_LNE_set_address (0x00000000000000bc)
+0x000002e3: 03 DW_LNS_advance_line (46)
+0x000002e5: 05 DW_LNS_set_column (28)
+0x000002e7: 04 DW_LNS_set_file (2)
+0x000002e9: 06 DW_LNS_negate_stmt
+0x000002ea: 0a DW_LNS_set_prologue_end
+0x000002eb: 00 DW_LNE_end_sequence
+ 0x00000000000000bc 46 28 2 0 0 end_sequence
+
+0x000002ee: 00 DW_LNE_set_address (0x00000000000000c1)
+0x000002f5: 03 DW_LNS_advance_line (46)
+0x000002f7: 05 DW_LNS_set_column (41)
+0x000002f9: 04 DW_LNS_set_file (2)
+0x000002fb: 06 DW_LNS_negate_stmt
+0x000002fc: 0a DW_LNS_set_prologue_end
+0x000002fd: 00 DW_LNE_end_sequence
+ 0x00000000000000c1 46 41 2 0 0 end_sequence
+
+0x00000300: 00 DW_LNE_set_address (0x00000000000000c6)
+0x00000307: 03 DW_LNS_advance_line (48)
+0x00000309: 05 DW_LNS_set_column (21)
+0x0000030b: 04 DW_LNS_set_file (2)
+0x0000030d: 0a DW_LNS_set_prologue_end
+0x0000030e: 00 DW_LNE_end_sequence
+ 0x00000000000000c6 48 21 2 0 0 is_stmt end_sequence
+
+0x00000311: 00 DW_LNE_set_address (0x00000000000000ce)
+0x00000318: 03 DW_LNS_advance_line (50)
+0x0000031a: 05 DW_LNS_set_column (14)
+0x0000031c: 04 DW_LNS_set_file (2)
+0x0000031e: 0a DW_LNS_set_prologue_end
+0x0000031f: 00 DW_LNE_end_sequence
+ 0x00000000000000ce 50 14 2 0 0 is_stmt end_sequence
+
+0x00000322: 00 DW_LNE_set_address (0x00000000000000e1)
+0x00000329: 03 DW_LNS_advance_line (52)
+0x0000032b: 05 DW_LNS_set_column (38)
+0x0000032d: 04 DW_LNS_set_file (2)
+0x0000032f: 0a DW_LNS_set_prologue_end
+0x00000330: 00 DW_LNE_end_sequence
+ 0x00000000000000e1 52 38 2 0 0 is_stmt end_sequence
+
+0x00000333: 00 DW_LNE_set_address (0x00000000000000f5)
+0x0000033a: 03 DW_LNS_advance_line (53)
+0x0000033c: 05 DW_LNS_set_column (22)
+0x0000033e: 04 DW_LNS_set_file (2)
+0x00000340: 0a DW_LNS_set_prologue_end
+0x00000341: 00 DW_LNE_end_sequence
+ 0x00000000000000f5 53 22 2 0 0 is_stmt end_sequence
+
+0x00000344: 00 DW_LNE_set_address (0x0000000000000104)
+0x0000034b: 03 DW_LNS_advance_line (54)
+0x0000034d: 05 DW_LNS_set_column (24)
+0x0000034f: 04 DW_LNS_set_file (2)
+0x00000351: 0a DW_LNS_set_prologue_end
+0x00000352: 00 DW_LNE_end_sequence
+ 0x0000000000000104 54 24 2 0 0 is_stmt end_sequence
+
+0x00000355: 00 DW_LNE_set_address (0x0000000000000106)
+0x0000035c: 03 DW_LNS_advance_line (54)
+0x0000035e: 05 DW_LNS_set_column (26)
+0x00000360: 04 DW_LNS_set_file (2)
+0x00000362: 06 DW_LNS_negate_stmt
+0x00000363: 0a DW_LNS_set_prologue_end
+0x00000364: 00 DW_LNE_end_sequence
+ 0x0000000000000106 54 26 2 0 0 end_sequence
+
+0x00000367: 00 DW_LNE_set_address (0x0000000000000113)
+0x0000036e: 03 DW_LNS_advance_line (54)
+0x00000370: 05 DW_LNS_set_column (24)
+0x00000372: 04 DW_LNS_set_file (2)
+0x00000374: 06 DW_LNS_negate_stmt
+0x00000375: 0a DW_LNS_set_prologue_end
+0x00000376: 00 DW_LNE_end_sequence
+ 0x0000000000000113 54 24 2 0 0 end_sequence
+
+0x00000379: 00 DW_LNE_set_address (0x0000000000000116)
+0x00000380: 03 DW_LNS_advance_line (55)
+0x00000382: 05 DW_LNS_set_column (24)
+0x00000384: 04 DW_LNS_set_file (2)
+0x00000386: 0a DW_LNS_set_prologue_end
+0x00000387: 00 DW_LNE_end_sequence
+ 0x0000000000000116 55 24 2 0 0 is_stmt end_sequence
+
+0x0000038a: 00 DW_LNE_set_address (0x000000000000011d)
+0x00000391: 03 DW_LNS_advance_line (52)
+0x00000393: 05 DW_LNS_set_column (44)
+0x00000395: 04 DW_LNS_set_file (2)
+0x00000397: 0a DW_LNS_set_prologue_end
+0x00000398: 00 DW_LNE_end_sequence
+ 0x000000000000011d 52 44 2 0 0 is_stmt end_sequence
+
+0x0000039b: 00 DW_LNE_set_address (0x0000000000000129)
+0x000003a2: 03 DW_LNS_advance_line (52)
+0x000003a4: 05 DW_LNS_set_column (38)
+0x000003a6: 04 DW_LNS_set_file (2)
+0x000003a8: 06 DW_LNS_negate_stmt
+0x000003a9: 0a DW_LNS_set_prologue_end
+0x000003aa: 00 DW_LNE_end_sequence
+ 0x0000000000000129 52 38 2 0 0 end_sequence
+
+0x000003ad: 00 DW_LNE_set_address (0x000000000000012c)
+0x000003b4: 03 DW_LNS_advance_line (52)
+0x000003b6: 05 DW_LNS_set_column (13)
+0x000003b8: 04 DW_LNS_set_file (2)
+0x000003ba: 06 DW_LNS_negate_stmt
+0x000003bb: 0a DW_LNS_set_prologue_end
+0x000003bc: 00 DW_LNE_end_sequence
+ 0x000000000000012c 52 13 2 0 0 end_sequence
+
+0x000003bf: 00 DW_LNE_set_address (0x0000000000000130)
+0x000003c6: 03 DW_LNS_advance_line (58)
+0x000003c8: 05 DW_LNS_set_column (19)
+0x000003ca: 04 DW_LNS_set_file (2)
+0x000003cc: 0a DW_LNS_set_prologue_end
+0x000003cd: 00 DW_LNE_end_sequence
+ 0x0000000000000130 58 19 2 0 0 is_stmt end_sequence
+
+0x000003d0: 00 DW_LNE_set_address (0x000000000000013f)
+0x000003d7: 03 DW_LNS_advance_line (59)
+0x000003d9: 05 DW_LNS_set_column (21)
+0x000003db: 04 DW_LNS_set_file (2)
+0x000003dd: 0a DW_LNS_set_prologue_end
+0x000003de: 00 DW_LNE_end_sequence
+ 0x000000000000013f 59 21 2 0 0 is_stmt end_sequence
+
+0x000003e1: 00 DW_LNE_set_address (0x0000000000000146)
+0x000003e8: 03 DW_LNS_advance_line (57)
+0x000003ea: 05 DW_LNS_set_column (18)
+0x000003ec: 04 DW_LNS_set_file (2)
+0x000003ee: 0a DW_LNS_set_prologue_end
+0x000003ef: 00 DW_LNE_end_sequence
+ 0x0000000000000146 57 18 2 0 0 is_stmt end_sequence
+
+0x000003f2: 00 DW_LNE_set_address (0x0000000000000156)
+0x000003f9: 03 DW_LNS_advance_line (62)
+0x000003fb: 05 DW_LNS_set_column (14)
+0x000003fd: 04 DW_LNS_set_file (2)
+0x000003ff: 0a DW_LNS_set_prologue_end
+0x00000400: 00 DW_LNE_end_sequence
+ 0x0000000000000156 62 14 2 0 0 is_stmt end_sequence
+
+0x00000403: 00 DW_LNE_set_address (0x000000000000015a)
+0x0000040a: 03 DW_LNS_advance_line (62)
+0x0000040c: 05 DW_LNS_set_column (23)
+0x0000040e: 04 DW_LNS_set_file (2)
+0x00000410: 06 DW_LNS_negate_stmt
+0x00000411: 0a DW_LNS_set_prologue_end
+0x00000412: 00 DW_LNE_end_sequence
+ 0x000000000000015a 62 23 2 0 0 end_sequence
+
+0x00000415: 00 DW_LNE_set_address (0x000000000000015f)
+0x0000041c: 03 DW_LNS_advance_line (62)
+0x0000041e: 05 DW_LNS_set_column (14)
+0x00000420: 04 DW_LNS_set_file (2)
+0x00000422: 06 DW_LNS_negate_stmt
+0x00000423: 0a DW_LNS_set_prologue_end
+0x00000424: 00 DW_LNE_end_sequence
+ 0x000000000000015f 62 14 2 0 0 end_sequence
+
+0x00000427: 00 DW_LNE_set_address (0x0000000000000163)
+0x0000042e: 03 DW_LNS_advance_line (66)
+0x00000431: 05 DW_LNS_set_column (16)
+0x00000433: 04 DW_LNS_set_file (2)
+0x00000435: 0a DW_LNS_set_prologue_end
+0x00000436: 00 DW_LNE_end_sequence
+ 0x0000000000000163 66 16 2 0 0 is_stmt end_sequence
+
+0x00000439: 00 DW_LNE_set_address (0x0000000000000172)
+0x00000440: 03 DW_LNS_advance_line (75)
+0x00000443: 05 DW_LNS_set_column (27)
+0x00000445: 04 DW_LNS_set_file (2)
+0x00000447: 0a DW_LNS_set_prologue_end
+0x00000448: 00 DW_LNE_end_sequence
+ 0x0000000000000172 75 27 2 0 0 is_stmt end_sequence
+
+0x0000044b: 00 DW_LNE_set_address (0x000000000000017b)
+0x00000452: 03 DW_LNS_advance_line (76)
+0x00000455: 05 DW_LNS_set_column (16)
+0x00000457: 04 DW_LNS_set_file (2)
+0x00000459: 0a DW_LNS_set_prologue_end
+0x0000045a: 00 DW_LNE_end_sequence
+ 0x000000000000017b 76 16 2 0 0 is_stmt end_sequence
+
+0x0000045d: 00 DW_LNE_set_address (0x0000000000000183)
+0x00000464: 03 DW_LNS_advance_line (76)
+0x00000467: 05 DW_LNS_set_column (27)
+0x00000469: 04 DW_LNS_set_file (2)
+0x0000046b: 06 DW_LNS_negate_stmt
+0x0000046c: 0a DW_LNS_set_prologue_end
+0x0000046d: 00 DW_LNE_end_sequence
+ 0x0000000000000183 76 27 2 0 0 end_sequence
+
+0x00000470: 00 DW_LNE_set_address (0x0000000000000185)
+0x00000477: 03 DW_LNS_advance_line (76)
+0x0000047a: 05 DW_LNS_set_column (35)
+0x0000047c: 04 DW_LNS_set_file (2)
+0x0000047e: 06 DW_LNS_negate_stmt
+0x0000047f: 0a DW_LNS_set_prologue_end
+0x00000480: 00 DW_LNE_end_sequence
+ 0x0000000000000185 76 35 2 0 0 end_sequence
+
+0x00000483: 00 DW_LNE_set_address (0x000000000000018e)
+0x0000048a: 03 DW_LNS_advance_line (76)
+0x0000048d: 05 DW_LNS_set_column (27)
+0x0000048f: 04 DW_LNS_set_file (2)
+0x00000491: 06 DW_LNS_negate_stmt
+0x00000492: 0a DW_LNS_set_prologue_end
+0x00000493: 00 DW_LNE_end_sequence
+ 0x000000000000018e 76 27 2 0 0 end_sequence
+
+0x00000496: 00 DW_LNE_set_address (0x0000000000000193)
+0x0000049d: 03 DW_LNS_advance_line (76)
+0x000004a0: 05 DW_LNS_set_column (25)
+0x000004a2: 04 DW_LNS_set_file (2)
+0x000004a4: 06 DW_LNS_negate_stmt
+0x000004a5: 0a DW_LNS_set_prologue_end
+0x000004a6: 00 DW_LNE_end_sequence
+ 0x0000000000000193 76 25 2 0 0 end_sequence
+
+0x000004a9: 00 DW_LNE_set_address (0x0000000000000196)
+0x000004b0: 03 DW_LNS_advance_line (75)
+0x000004b3: 05 DW_LNS_set_column (27)
+0x000004b5: 04 DW_LNS_set_file (2)
+0x000004b7: 0a DW_LNS_set_prologue_end
+0x000004b8: 00 DW_LNE_end_sequence
+ 0x0000000000000196 75 27 2 0 0 is_stmt end_sequence
+
+0x000004bb: 00 DW_LNE_set_address (0x000000000000019b)
+0x000004c2: 03 DW_LNS_advance_line (75)
+0x000004c5: 05 DW_LNS_set_column (13)
+0x000004c7: 04 DW_LNS_set_file (2)
+0x000004c9: 06 DW_LNS_negate_stmt
+0x000004ca: 0a DW_LNS_set_prologue_end
+0x000004cb: 00 DW_LNE_end_sequence
+ 0x000000000000019b 75 13 2 0 0 end_sequence
+
+0x000004ce: 00 DW_LNE_set_address (0x00000000000001a3)
+0x000004d5: 03 DW_LNS_advance_line (77)
+0x000004d8: 05 DW_LNS_set_column (13)
+0x000004da: 04 DW_LNS_set_file (2)
+0x000004dc: 0a DW_LNS_set_prologue_end
+0x000004dd: 00 DW_LNE_end_sequence
+ 0x00000000000001a3 77 13 2 0 0 is_stmt end_sequence
+
+0x000004e0: 00 DW_LNE_set_address (0x00000000000001ab)
+0x000004e7: 03 DW_LNS_advance_line (77)
+0x000004ea: 05 DW_LNS_set_column (22)
+0x000004ec: 04 DW_LNS_set_file (2)
+0x000004ee: 06 DW_LNS_negate_stmt
+0x000004ef: 0a DW_LNS_set_prologue_end
+0x000004f0: 00 DW_LNE_end_sequence
+ 0x00000000000001ab 77 22 2 0 0 end_sequence
+
+0x000004f3: 00 DW_LNE_set_address (0x00000000000001b0)
+0x000004fa: 03 DW_LNS_advance_line (79)
+0x000004fd: 05 DW_LNS_set_column (16)
+0x000004ff: 04 DW_LNS_set_file (2)
+0x00000501: 0a DW_LNS_set_prologue_end
+0x00000502: 00 DW_LNE_end_sequence
+ 0x00000000000001b0 79 16 2 0 0 is_stmt end_sequence
+
+0x00000505: 00 DW_LNE_set_address (0x00000000000001b8)
+0x0000050c: 03 DW_LNS_advance_line (79)
+0x0000050f: 05 DW_LNS_set_column (14)
+0x00000511: 04 DW_LNS_set_file (2)
+0x00000513: 06 DW_LNS_negate_stmt
+0x00000514: 0a DW_LNS_set_prologue_end
+0x00000515: 00 DW_LNE_end_sequence
+ 0x00000000000001b8 79 14 2 0 0 end_sequence
+
+0x00000518: 00 DW_LNE_set_address (0x00000000000001c7)
+0x0000051f: 03 DW_LNS_advance_line (79)
+0x00000522: 05 DW_LNS_set_column (25)
+0x00000524: 04 DW_LNS_set_file (2)
+0x00000526: 06 DW_LNS_negate_stmt
+0x00000527: 0a DW_LNS_set_prologue_end
+0x00000528: 00 DW_LNE_end_sequence
+ 0x00000000000001c7 79 25 2 0 0 end_sequence
+
+0x0000052b: 00 DW_LNE_set_address (0x00000000000001ce)
+0x00000532: 03 DW_LNS_advance_line (81)
+0x00000535: 05 DW_LNS_set_column (11)
+0x00000537: 04 DW_LNS_set_file (2)
+0x00000539: 0a DW_LNS_set_prologue_end
+0x0000053a: 00 DW_LNE_end_sequence
+ 0x00000000000001ce 81 11 2 0 0 is_stmt end_sequence
+
+0x0000053d: 00 DW_LNE_set_address (0x00000000000001d3)
+0x00000544: 03 DW_LNS_advance_line (66)
+0x00000547: 05 DW_LNS_set_column (16)
+0x00000549: 04 DW_LNS_set_file (2)
+0x0000054b: 0a DW_LNS_set_prologue_end
+0x0000054c: 00 DW_LNE_end_sequence
+ 0x00000000000001d3 66 16 2 0 0 is_stmt end_sequence
+
+0x0000054f: 00 DW_LNE_set_address (0x00000000000001da)
+0x00000556: 03 DW_LNS_advance_line (74)
+0x00000559: 05 DW_LNS_set_column (22)
+0x0000055b: 04 DW_LNS_set_file (2)
+0x0000055d: 0a DW_LNS_set_prologue_end
+0x0000055e: 00 DW_LNE_end_sequence
+ 0x00000000000001da 74 22 2 0 0 is_stmt end_sequence
+
+0x00000561: 00 DW_LNE_set_address (0x00000000000001ea)
+0x00000568: 03 DW_LNS_advance_line (39)
+0x0000056a: 05 DW_LNS_set_column (4)
+0x0000056c: 04 DW_LNS_set_file (2)
+0x0000056e: 0a DW_LNS_set_prologue_end
+0x0000056f: 00 DW_LNE_end_sequence
+ 0x00000000000001ea 39 4 2 0 0 is_stmt end_sequence
+
+0x00000572: 00 DW_LNE_set_address (0x00000000000001ec)
+0x00000579: 03 DW_LNS_advance_line (39)
+0x0000057b: 05 DW_LNS_set_column (16)
+0x0000057d: 04 DW_LNS_set_file (2)
+0x0000057f: 06 DW_LNS_negate_stmt
+0x00000580: 0a DW_LNS_set_prologue_end
+0x00000581: 00 DW_LNE_end_sequence
+ 0x00000000000001ec 39 16 2 0 0 end_sequence
+
+0x00000584: 00 DW_LNE_set_address (0x00000000000001f5)
+0x0000058b: 03 DW_LNS_advance_line (39)
+0x0000058d: 05 DW_LNS_set_column (4)
+0x0000058f: 04 DW_LNS_set_file (2)
+0x00000591: 06 DW_LNS_negate_stmt
+0x00000592: 0a DW_LNS_set_prologue_end
+0x00000593: 00 DW_LNE_end_sequence
+ 0x00000000000001f5 39 4 2 0 0 end_sequence
+
+0x00000596: 00 DW_LNE_set_address (0x00000000000001f7)
+0x0000059d: 03 DW_LNS_advance_line (39)
+0x0000059f: 05 DW_LNS_set_column (23)
+0x000005a1: 04 DW_LNS_set_file (2)
+0x000005a3: 06 DW_LNS_negate_stmt
+0x000005a4: 0a DW_LNS_set_prologue_end
+0x000005a5: 00 DW_LNE_end_sequence
+ 0x00000000000001f7 39 23 2 0 0 end_sequence
+
+0x000005a8: 00 DW_LNE_set_address (0x00000000000001fc)
+0x000005af: 03 DW_LNS_advance_line (39)
+0x000005b1: 05 DW_LNS_set_column (19)
+0x000005b3: 04 DW_LNS_set_file (2)
+0x000005b5: 06 DW_LNS_negate_stmt
+0x000005b6: 0a DW_LNS_set_prologue_end
+0x000005b7: 00 DW_LNE_end_sequence
+ 0x00000000000001fc 39 19 2 0 0 end_sequence
+
+0x000005ba: 00 DW_LNE_set_address (0x0000000000000201)
+0x000005c1: 03 DW_LNS_advance_line (40)
+0x000005c3: 05 DW_LNS_set_column (4)
+0x000005c5: 04 DW_LNS_set_file (2)
+0x000005c7: 0a DW_LNS_set_prologue_end
+0x000005c8: 00 DW_LNE_end_sequence
+ 0x0000000000000201 40 4 2 0 0 is_stmt end_sequence
+
+0x000005cb: 00 DW_LNE_set_address (0x0000000000000209)
+0x000005d2: 03 DW_LNS_advance_line (40)
+0x000005d4: 05 DW_LNS_set_column (17)
+0x000005d6: 04 DW_LNS_set_file (2)
+0x000005d8: 06 DW_LNS_negate_stmt
+0x000005d9: 0a DW_LNS_set_prologue_end
+0x000005da: 00 DW_LNE_end_sequence
+ 0x0000000000000209 40 17 2 0 0 end_sequence
+
+0x000005dd: 00 DW_LNE_set_address (0x0000000000000219)
+0x000005e4: 03 DW_LNS_advance_line (44)
+0x000005e6: 05 DW_LNS_set_column (16)
+0x000005e8: 04 DW_LNS_set_file (2)
+0x000005ea: 0a DW_LNS_set_prologue_end
+0x000005eb: 00 DW_LNE_end_sequence
+ 0x0000000000000219 44 16 2 0 0 is_stmt end_sequence
+
+0x000005ee: 00 DW_LNE_set_address (0x0000000000000222)
+0x000005f5: 03 DW_LNS_advance_line (45)
+0x000005f7: 05 DW_LNS_set_column (10)
+0x000005f9: 04 DW_LNS_set_file (2)
+0x000005fb: 0a DW_LNS_set_prologue_end
+0x000005fc: 00 DW_LNE_end_sequence
+ 0x0000000000000222 45 10 2 0 0 is_stmt end_sequence
+
+0x000005ff: 00 DW_LNE_set_address (0x0000000000000224)
+0x00000606: 03 DW_LNS_advance_line (45)
+0x00000608: 05 DW_LNS_set_column (18)
+0x0000060a: 04 DW_LNS_set_file (2)
+0x0000060c: 06 DW_LNS_negate_stmt
+0x0000060d: 0a DW_LNS_set_prologue_end
+0x0000060e: 00 DW_LNE_end_sequence
+ 0x0000000000000224 45 18 2 0 0 end_sequence
+
+0x00000611: 00 DW_LNE_set_address (0x000000000000022d)
+0x00000618: 03 DW_LNS_advance_line (45)
+0x0000061a: 05 DW_LNS_set_column (10)
+0x0000061c: 04 DW_LNS_set_file (2)
+0x0000061e: 06 DW_LNS_negate_stmt
+0x0000061f: 0a DW_LNS_set_prologue_end
+0x00000620: 00 DW_LNE_end_sequence
+ 0x000000000000022d 45 10 2 0 0 end_sequence
+
+0x00000623: 00 DW_LNE_set_address (0x000000000000022f)
+0x0000062a: 03 DW_LNS_advance_line (45)
+0x0000062c: 05 DW_LNS_set_column (23)
+0x0000062e: 04 DW_LNS_set_file (2)
+0x00000630: 06 DW_LNS_negate_stmt
+0x00000631: 0a DW_LNS_set_prologue_end
+0x00000632: 00 DW_LNE_end_sequence
+ 0x000000000000022f 45 23 2 0 0 end_sequence
+
+0x00000635: 00 DW_LNE_set_address (0x0000000000000234)
+0x0000063c: 03 DW_LNS_advance_line (44)
+0x0000063e: 05 DW_LNS_set_column (16)
+0x00000640: 04 DW_LNS_set_file (2)
+0x00000642: 0a DW_LNS_set_prologue_end
+0x00000643: 00 DW_LNE_end_sequence
+ 0x0000000000000234 44 16 2 0 0 is_stmt end_sequence
+
+0x00000646: 00 DW_LNE_set_address (0x0000000000000245)
+0x0000064d: 03 DW_LNS_advance_line (46)
+0x0000064f: 05 DW_LNS_set_column (11)
+0x00000651: 04 DW_LNS_set_file (2)
+0x00000653: 0a DW_LNS_set_prologue_end
+0x00000654: 00 DW_LNE_end_sequence
+ 0x0000000000000245 46 11 2 0 0 is_stmt end_sequence
+
+0x00000657: 00 DW_LNE_set_address (0x0000000000000251)
+0x0000065e: 03 DW_LNS_advance_line (46)
+0x00000660: 05 DW_LNS_set_column (28)
+0x00000662: 04 DW_LNS_set_file (2)
+0x00000664: 06 DW_LNS_negate_stmt
+0x00000665: 0a DW_LNS_set_prologue_end
+0x00000666: 00 DW_LNE_end_sequence
+ 0x0000000000000251 46 28 2 0 0 end_sequence
+
+0x00000669: 00 DW_LNE_set_address (0x0000000000000256)
+0x00000670: 03 DW_LNS_advance_line (46)
+0x00000672: 05 DW_LNS_set_column (41)
+0x00000674: 04 DW_LNS_set_file (2)
+0x00000676: 06 DW_LNS_negate_stmt
+0x00000677: 0a DW_LNS_set_prologue_end
+0x00000678: 00 DW_LNE_end_sequence
+ 0x0000000000000256 46 41 2 0 0 end_sequence
+
+0x0000067b: 00 DW_LNE_set_address (0x000000000000025b)
+0x00000682: 03 DW_LNS_advance_line (50)
+0x00000684: 05 DW_LNS_set_column (14)
+0x00000686: 04 DW_LNS_set_file (2)
+0x00000688: 0a DW_LNS_set_prologue_end
+0x00000689: 00 DW_LNE_end_sequence
+ 0x000000000000025b 50 14 2 0 0 is_stmt end_sequence
+
+0x0000068c: 00 DW_LNE_set_address (0x000000000000026e)
+0x00000693: 03 DW_LNS_advance_line (52)
+0x00000695: 05 DW_LNS_set_column (38)
+0x00000697: 04 DW_LNS_set_file (2)
+0x00000699: 0a DW_LNS_set_prologue_end
+0x0000069a: 00 DW_LNE_end_sequence
+ 0x000000000000026e 52 38 2 0 0 is_stmt end_sequence
+
+0x0000069d: 00 DW_LNE_set_address (0x0000000000000282)
+0x000006a4: 03 DW_LNS_advance_line (53)
+0x000006a6: 05 DW_LNS_set_column (22)
+0x000006a8: 04 DW_LNS_set_file (2)
+0x000006aa: 0a DW_LNS_set_prologue_end
+0x000006ab: 00 DW_LNE_end_sequence
+ 0x0000000000000282 53 22 2 0 0 is_stmt end_sequence
+
+0x000006ae: 00 DW_LNE_set_address (0x0000000000000291)
+0x000006b5: 03 DW_LNS_advance_line (54)
+0x000006b7: 05 DW_LNS_set_column (24)
+0x000006b9: 04 DW_LNS_set_file (2)
+0x000006bb: 0a DW_LNS_set_prologue_end
+0x000006bc: 00 DW_LNE_end_sequence
+ 0x0000000000000291 54 24 2 0 0 is_stmt end_sequence
+
+0x000006bf: 00 DW_LNE_set_address (0x0000000000000293)
+0x000006c6: 03 DW_LNS_advance_line (54)
+0x000006c8: 05 DW_LNS_set_column (26)
+0x000006ca: 04 DW_LNS_set_file (2)
+0x000006cc: 06 DW_LNS_negate_stmt
+0x000006cd: 0a DW_LNS_set_prologue_end
+0x000006ce: 00 DW_LNE_end_sequence
+ 0x0000000000000293 54 26 2 0 0 end_sequence
+
+0x000006d1: 00 DW_LNE_set_address (0x00000000000002a0)
+0x000006d8: 03 DW_LNS_advance_line (54)
+0x000006da: 05 DW_LNS_set_column (24)
+0x000006dc: 04 DW_LNS_set_file (2)
+0x000006de: 06 DW_LNS_negate_stmt
+0x000006df: 0a DW_LNS_set_prologue_end
+0x000006e0: 00 DW_LNE_end_sequence
+ 0x00000000000002a0 54 24 2 0 0 end_sequence
+
+0x000006e3: 00 DW_LNE_set_address (0x00000000000002a3)
+0x000006ea: 03 DW_LNS_advance_line (55)
+0x000006ec: 05 DW_LNS_set_column (24)
+0x000006ee: 04 DW_LNS_set_file (2)
+0x000006f0: 0a DW_LNS_set_prologue_end
+0x000006f1: 00 DW_LNE_end_sequence
+ 0x00000000000002a3 55 24 2 0 0 is_stmt end_sequence
+
+0x000006f4: 00 DW_LNE_set_address (0x00000000000002aa)
+0x000006fb: 03 DW_LNS_advance_line (52)
+0x000006fd: 05 DW_LNS_set_column (44)
+0x000006ff: 04 DW_LNS_set_file (2)
+0x00000701: 0a DW_LNS_set_prologue_end
+0x00000702: 00 DW_LNE_end_sequence
+ 0x00000000000002aa 52 44 2 0 0 is_stmt end_sequence
+
+0x00000705: 00 DW_LNE_set_address (0x00000000000002b6)
+0x0000070c: 03 DW_LNS_advance_line (52)
+0x0000070e: 05 DW_LNS_set_column (38)
+0x00000710: 04 DW_LNS_set_file (2)
+0x00000712: 06 DW_LNS_negate_stmt
+0x00000713: 0a DW_LNS_set_prologue_end
+0x00000714: 00 DW_LNE_end_sequence
+ 0x00000000000002b6 52 38 2 0 0 end_sequence
+
+0x00000717: 00 DW_LNE_set_address (0x00000000000002bd)
+0x0000071e: 03 DW_LNS_advance_line (58)
+0x00000720: 05 DW_LNS_set_column (19)
+0x00000722: 04 DW_LNS_set_file (2)
+0x00000724: 0a DW_LNS_set_prologue_end
+0x00000725: 00 DW_LNE_end_sequence
+ 0x00000000000002bd 58 19 2 0 0 is_stmt end_sequence
+
+0x00000728: 00 DW_LNE_set_address (0x00000000000002cc)
+0x0000072f: 03 DW_LNS_advance_line (59)
+0x00000731: 05 DW_LNS_set_column (21)
+0x00000733: 04 DW_LNS_set_file (2)
+0x00000735: 0a DW_LNS_set_prologue_end
+0x00000736: 00 DW_LNE_end_sequence
+ 0x00000000000002cc 59 21 2 0 0 is_stmt end_sequence
+
+0x00000739: 00 DW_LNE_set_address (0x00000000000002d3)
+0x00000740: 03 DW_LNS_advance_line (57)
+0x00000742: 05 DW_LNS_set_column (18)
+0x00000744: 04 DW_LNS_set_file (2)
+0x00000746: 0a DW_LNS_set_prologue_end
+0x00000747: 00 DW_LNE_end_sequence
+ 0x00000000000002d3 57 18 2 0 0 is_stmt end_sequence
+
+0x0000074a: 00 DW_LNE_set_address (0x00000000000002e3)
+0x00000751: 03 DW_LNS_advance_line (62)
+0x00000753: 05 DW_LNS_set_column (14)
+0x00000755: 04 DW_LNS_set_file (2)
+0x00000757: 0a DW_LNS_set_prologue_end
+0x00000758: 00 DW_LNE_end_sequence
+ 0x00000000000002e3 62 14 2 0 0 is_stmt end_sequence
+
+0x0000075b: 00 DW_LNE_set_address (0x00000000000002e7)
+0x00000762: 03 DW_LNS_advance_line (62)
+0x00000764: 05 DW_LNS_set_column (23)
+0x00000766: 04 DW_LNS_set_file (2)
+0x00000768: 06 DW_LNS_negate_stmt
+0x00000769: 0a DW_LNS_set_prologue_end
+0x0000076a: 00 DW_LNE_end_sequence
+ 0x00000000000002e7 62 23 2 0 0 end_sequence
+
+0x0000076d: 00 DW_LNE_set_address (0x00000000000002ec)
+0x00000774: 03 DW_LNS_advance_line (62)
+0x00000776: 05 DW_LNS_set_column (14)
+0x00000778: 04 DW_LNS_set_file (2)
+0x0000077a: 06 DW_LNS_negate_stmt
+0x0000077b: 0a DW_LNS_set_prologue_end
+0x0000077c: 00 DW_LNE_end_sequence
+ 0x00000000000002ec 62 14 2 0 0 end_sequence
+
+0x0000077f: 00 DW_LNE_set_address (0x00000000000002f0)
+0x00000786: 03 DW_LNS_advance_line (66)
+0x00000789: 05 DW_LNS_set_column (16)
+0x0000078b: 04 DW_LNS_set_file (2)
+0x0000078d: 0a DW_LNS_set_prologue_end
+0x0000078e: 00 DW_LNE_end_sequence
+ 0x00000000000002f0 66 16 2 0 0 is_stmt end_sequence
+
+0x00000791: 00 DW_LNE_set_address (0x00000000000002ff)
+0x00000798: 03 DW_LNS_advance_line (75)
+0x0000079b: 05 DW_LNS_set_column (27)
+0x0000079d: 04 DW_LNS_set_file (2)
+0x0000079f: 0a DW_LNS_set_prologue_end
+0x000007a0: 00 DW_LNE_end_sequence
+ 0x00000000000002ff 75 27 2 0 0 is_stmt end_sequence
+
+0x000007a3: 00 DW_LNE_set_address (0x0000000000000308)
+0x000007aa: 03 DW_LNS_advance_line (76)
+0x000007ad: 05 DW_LNS_set_column (16)
+0x000007af: 04 DW_LNS_set_file (2)
+0x000007b1: 0a DW_LNS_set_prologue_end
+0x000007b2: 00 DW_LNE_end_sequence
+ 0x0000000000000308 76 16 2 0 0 is_stmt end_sequence
+
+0x000007b5: 00 DW_LNE_set_address (0x0000000000000310)
+0x000007bc: 03 DW_LNS_advance_line (76)
+0x000007bf: 05 DW_LNS_set_column (27)
+0x000007c1: 04 DW_LNS_set_file (2)
+0x000007c3: 06 DW_LNS_negate_stmt
+0x000007c4: 0a DW_LNS_set_prologue_end
+0x000007c5: 00 DW_LNE_end_sequence
+ 0x0000000000000310 76 27 2 0 0 end_sequence
+
+0x000007c8: 00 DW_LNE_set_address (0x0000000000000312)
+0x000007cf: 03 DW_LNS_advance_line (76)
+0x000007d2: 05 DW_LNS_set_column (35)
+0x000007d4: 04 DW_LNS_set_file (2)
+0x000007d6: 06 DW_LNS_negate_stmt
+0x000007d7: 0a DW_LNS_set_prologue_end
+0x000007d8: 00 DW_LNE_end_sequence
+ 0x0000000000000312 76 35 2 0 0 end_sequence
+
+0x000007db: 00 DW_LNE_set_address (0x000000000000031b)
+0x000007e2: 03 DW_LNS_advance_line (76)
+0x000007e5: 05 DW_LNS_set_column (27)
+0x000007e7: 04 DW_LNS_set_file (2)
+0x000007e9: 06 DW_LNS_negate_stmt
+0x000007ea: 0a DW_LNS_set_prologue_end
+0x000007eb: 00 DW_LNE_end_sequence
+ 0x000000000000031b 76 27 2 0 0 end_sequence
+
+0x000007ee: 00 DW_LNE_set_address (0x0000000000000320)
+0x000007f5: 03 DW_LNS_advance_line (76)
+0x000007f8: 05 DW_LNS_set_column (25)
+0x000007fa: 04 DW_LNS_set_file (2)
+0x000007fc: 06 DW_LNS_negate_stmt
+0x000007fd: 0a DW_LNS_set_prologue_end
+0x000007fe: 00 DW_LNE_end_sequence
+ 0x0000000000000320 76 25 2 0 0 end_sequence
+
+0x00000801: 00 DW_LNE_set_address (0x0000000000000323)
+0x00000808: 03 DW_LNS_advance_line (75)
+0x0000080b: 05 DW_LNS_set_column (27)
+0x0000080d: 04 DW_LNS_set_file (2)
+0x0000080f: 0a DW_LNS_set_prologue_end
+0x00000810: 00 DW_LNE_end_sequence
+ 0x0000000000000323 75 27 2 0 0 is_stmt end_sequence
+
+0x00000813: 00 DW_LNE_set_address (0x0000000000000330)
+0x0000081a: 03 DW_LNS_advance_line (77)
+0x0000081d: 05 DW_LNS_set_column (13)
+0x0000081f: 04 DW_LNS_set_file (2)
+0x00000821: 0a DW_LNS_set_prologue_end
+0x00000822: 00 DW_LNE_end_sequence
+ 0x0000000000000330 77 13 2 0 0 is_stmt end_sequence
+
+0x00000825: 00 DW_LNE_set_address (0x0000000000000338)
+0x0000082c: 03 DW_LNS_advance_line (77)
+0x0000082f: 05 DW_LNS_set_column (22)
+0x00000831: 04 DW_LNS_set_file (2)
+0x00000833: 06 DW_LNS_negate_stmt
+0x00000834: 0a DW_LNS_set_prologue_end
+0x00000835: 00 DW_LNE_end_sequence
+ 0x0000000000000338 77 22 2 0 0 end_sequence
+
+0x00000838: 00 DW_LNE_set_address (0x000000000000033d)
+0x0000083f: 03 DW_LNS_advance_line (79)
+0x00000842: 05 DW_LNS_set_column (16)
+0x00000844: 04 DW_LNS_set_file (2)
+0x00000846: 0a DW_LNS_set_prologue_end
+0x00000847: 00 DW_LNE_end_sequence
+ 0x000000000000033d 79 16 2 0 0 is_stmt end_sequence
+
+0x0000084a: 00 DW_LNE_set_address (0x0000000000000345)
+0x00000851: 03 DW_LNS_advance_line (79)
+0x00000854: 05 DW_LNS_set_column (14)
+0x00000856: 04 DW_LNS_set_file (2)
+0x00000858: 06 DW_LNS_negate_stmt
+0x00000859: 0a DW_LNS_set_prologue_end
+0x0000085a: 00 DW_LNE_end_sequence
+ 0x0000000000000345 79 14 2 0 0 end_sequence
+
+0x0000085d: 00 DW_LNE_set_address (0x0000000000000354)
+0x00000864: 03 DW_LNS_advance_line (79)
+0x00000867: 05 DW_LNS_set_column (25)
+0x00000869: 04 DW_LNS_set_file (2)
+0x0000086b: 06 DW_LNS_negate_stmt
+0x0000086c: 0a DW_LNS_set_prologue_end
+0x0000086d: 00 DW_LNE_end_sequence
+ 0x0000000000000354 79 25 2 0 0 end_sequence
+
+0x00000870: 00 DW_LNE_set_address (0x000000000000035b)
+0x00000877: 03 DW_LNS_advance_line (81)
+0x0000087a: 05 DW_LNS_set_column (11)
+0x0000087c: 04 DW_LNS_set_file (2)
+0x0000087e: 0a DW_LNS_set_prologue_end
+0x0000087f: 00 DW_LNE_end_sequence
+ 0x000000000000035b 81 11 2 0 0 is_stmt end_sequence
+
+0x00000882: 00 DW_LNE_set_address (0x0000000000000360)
+0x00000889: 03 DW_LNS_advance_line (66)
+0x0000088c: 05 DW_LNS_set_column (16)
+0x0000088e: 04 DW_LNS_set_file (2)
+0x00000890: 0a DW_LNS_set_prologue_end
+0x00000891: 00 DW_LNE_end_sequence
+ 0x0000000000000360 66 16 2 0 0 is_stmt end_sequence
+
+0x00000894: 00 DW_LNE_set_address (0x0000000000000367)
+0x0000089b: 03 DW_LNS_advance_line (74)
+0x0000089e: 05 DW_LNS_set_column (22)
+0x000008a0: 04 DW_LNS_set_file (2)
+0x000008a2: 0a DW_LNS_set_prologue_end
+0x000008a3: 00 DW_LNE_end_sequence
+ 0x0000000000000367 74 22 2 0 0 is_stmt end_sequence
+
+0x000008a6: 00 DW_LNE_set_address (0x0000000000000377)
+0x000008ad: 03 DW_LNS_advance_line (67)
+0x000008b0: 05 DW_LNS_set_column (13)
+0x000008b2: 04 DW_LNS_set_file (2)
+0x000008b4: 0a DW_LNS_set_prologue_end
+0x000008b5: 00 DW_LNE_end_sequence
+ 0x0000000000000377 67 13 2 0 0 is_stmt end_sequence
+
+0x000008b8: 00 DW_LNE_set_address (0x000000000000037b)
+0x000008bf: 03 DW_LNS_advance_line (68)
+0x000008c2: 05 DW_LNS_set_column (13)
+0x000008c4: 04 DW_LNS_set_file (2)
+0x000008c6: 0a DW_LNS_set_prologue_end
+0x000008c7: 00 DW_LNE_end_sequence
+ 0x000000000000037b 68 13 2 0 0 is_stmt end_sequence
+
+0x000008ca: 00 DW_LNE_set_address (0x000000000000037f)
+0x000008d1: 03 DW_LNS_advance_line (69)
+0x000008d4: 05 DW_LNS_set_column (13)
+0x000008d6: 04 DW_LNS_set_file (2)
+0x000008d8: 0a DW_LNS_set_prologue_end
+0x000008d9: 00 DW_LNE_end_sequence
+ 0x000000000000037f 69 13 2 0 0 is_stmt end_sequence
+
+0x000008dc: 00 DW_LNE_set_address (0x0000000000000383)
+0x000008e3: 03 DW_LNS_advance_line (70)
+0x000008e6: 05 DW_LNS_set_column (13)
+0x000008e8: 04 DW_LNS_set_file (2)
+0x000008ea: 0a DW_LNS_set_prologue_end
+0x000008eb: 00 DW_LNE_end_sequence
+ 0x0000000000000383 70 13 2 0 0 is_stmt end_sequence
+
+0x000008ee: 00 DW_LNE_set_address (0x000000000000039a)
+0x000008f5: 03 DW_LNS_advance_line (153)
+0x000008f8: 05 DW_LNS_set_column (17)
+0x000008fa: 04 DW_LNS_set_file (2)
+0x000008fc: 0a DW_LNS_set_prologue_end
+0x000008fd: 00 DW_LNE_end_sequence
+ 0x000000000000039a 153 17 2 0 0 is_stmt end_sequence
+
+0x00000900: 00 DW_LNE_set_address (0x000000000000039f)
+0x00000907: 03 DW_LNS_advance_line (153)
+0x0000090a: 05 DW_LNS_set_column (12)
+0x0000090c: 04 DW_LNS_set_file (2)
+0x0000090e: 06 DW_LNS_negate_stmt
+0x0000090f: 0a DW_LNS_set_prologue_end
+0x00000910: 00 DW_LNE_end_sequence
+ 0x000000000000039f 153 12 2 0 0 end_sequence
+
+0x00000913: 00 DW_LNE_set_address (0x00000000000003a5)
+0x0000091a: 03 DW_LNS_advance_line (153)
+0x0000091d: 05 DW_LNS_set_column (28)
+0x0000091f: 04 DW_LNS_set_file (2)
+0x00000921: 06 DW_LNS_negate_stmt
+0x00000922: 0a DW_LNS_set_prologue_end
+0x00000923: 00 DW_LNE_end_sequence
+ 0x00000000000003a5 153 28 2 0 0 end_sequence
+
+0x00000926: 00 DW_LNE_set_address (0x00000000000003aa)
+0x0000092d: 03 DW_LNS_advance_line (153)
+0x00000930: 05 DW_LNS_set_column (23)
+0x00000932: 04 DW_LNS_set_file (2)
+0x00000934: 06 DW_LNS_negate_stmt
+0x00000935: 0a DW_LNS_set_prologue_end
+0x00000936: 00 DW_LNE_end_sequence
+ 0x00000000000003aa 153 23 2 0 0 end_sequence
+
+0x00000939: 00 DW_LNE_set_address (0x00000000000003b0)
+0x00000940: 03 DW_LNS_advance_line (155)
+0x00000943: 05 DW_LNS_set_column (10)
+0x00000945: 04 DW_LNS_set_file (2)
+0x00000947: 0a DW_LNS_set_prologue_end
+0x00000948: 00 DW_LNE_end_sequence
+ 0x00000000000003b0 155 10 2 0 0 is_stmt end_sequence
+
+0x0000094b: 00 DW_LNE_set_address (0x00000000000003b1)
+0x00000952: 03 DW_LNS_advance_line (155)
+0x00000955: 05 DW_LNS_set_column (8)
+0x00000957: 04 DW_LNS_set_file (2)
+0x00000959: 06 DW_LNS_negate_stmt
+0x0000095a: 0a DW_LNS_set_prologue_end
+0x0000095b: 00 DW_LNE_end_sequence
+ 0x00000000000003b1 155 8 2 0 0 end_sequence
+
+0x0000095e: 00 DW_LNE_set_address (0x00000000000003b4)
+0x00000965: 03 DW_LNS_advance_line (156)
+0x00000968: 05 DW_LNS_set_column (7)
+0x0000096a: 04 DW_LNS_set_file (2)
+0x0000096c: 0a DW_LNS_set_prologue_end
+0x0000096d: 00 DW_LNE_end_sequence
+ 0x00000000000003b4 156 7 2 0 0 is_stmt end_sequence
+
+0x00000970: 00 DW_LNE_set_address (0x00000000000003c3)
+0x00000977: 03 DW_LNS_advance_line (94)
+0x0000097a: 05 DW_LNS_set_column (18)
+0x0000097c: 04 DW_LNS_set_file (2)
+0x0000097e: 0a DW_LNS_set_prologue_end
+0x0000097f: 00 DW_LNE_end_sequence
+ 0x00000000000003c3 94 18 2 0 0 is_stmt end_sequence
+
+0x00000982: 00 DW_LNE_set_address (0x00000000000003c8)
+0x00000989: 03 DW_LNS_advance_line (94)
+0x0000098c: 05 DW_LNS_set_column (4)
+0x0000098e: 04 DW_LNS_set_file (2)
+0x00000990: 06 DW_LNS_negate_stmt
+0x00000991: 0a DW_LNS_set_prologue_end
+0x00000992: 00 DW_LNE_end_sequence
+ 0x00000000000003c8 94 4 2 0 0 end_sequence
+
+0x00000995: 00 DW_LNE_set_address (0x00000000000003dd)
+0x0000099c: 03 DW_LNS_advance_line (95)
+0x0000099f: 05 DW_LNS_set_column (29)
+0x000009a1: 04 DW_LNS_set_file (2)
+0x000009a3: 0a DW_LNS_set_prologue_end
+0x000009a4: 00 DW_LNE_end_sequence
+ 0x00000000000003dd 95 29 2 0 0 is_stmt end_sequence
+
+0x000009a7: 00 DW_LNE_set_address (0x00000000000003df)
+0x000009ae: 03 DW_LNS_advance_line (98)
+0x000009b1: 05 DW_LNS_set_column (19)
+0x000009b3: 04 DW_LNS_set_file (2)
+0x000009b5: 0a DW_LNS_set_prologue_end
+0x000009b6: 00 DW_LNE_end_sequence
+ 0x00000000000003df 98 19 2 0 0 is_stmt end_sequence
+
+0x000009b9: 00 DW_LNE_set_address (0x00000000000003e6)
+0x000009c0: 03 DW_LNS_advance_line (97)
+0x000009c3: 05 DW_LNS_set_column (16)
+0x000009c5: 04 DW_LNS_set_file (2)
+0x000009c7: 0a DW_LNS_set_prologue_end
+0x000009c8: 00 DW_LNE_end_sequence
+ 0x00000000000003e6 97 16 2 0 0 is_stmt end_sequence
+
+0x000009cb: 00 DW_LNE_set_address (0x00000000000003ed)
+0x000009d2: 03 DW_LNS_advance_line (96)
+0x000009d5: 05 DW_LNS_set_column (16)
+0x000009d7: 04 DW_LNS_set_file (2)
+0x000009d9: 0a DW_LNS_set_prologue_end
+0x000009da: 00 DW_LNE_end_sequence
+ 0x00000000000003ed 96 16 2 0 0 is_stmt end_sequence
+
+0x000009dd: 00 DW_LNE_set_address (0x00000000000003f8)
+0x000009e4: 03 DW_LNS_advance_line (94)
+0x000009e7: 05 DW_LNS_set_column (28)
+0x000009e9: 04 DW_LNS_set_file (2)
+0x000009eb: 0a DW_LNS_set_prologue_end
+0x000009ec: 00 DW_LNE_end_sequence
+ 0x00000000000003f8 94 28 2 0 0 is_stmt end_sequence
+
+0x000009ef: 00 DW_LNE_set_address (0x00000000000003fd)
+0x000009f6: 03 DW_LNS_advance_line (94)
+0x000009f9: 05 DW_LNS_set_column (18)
+0x000009fb: 04 DW_LNS_set_file (2)
+0x000009fd: 06 DW_LNS_negate_stmt
+0x000009fe: 0a DW_LNS_set_prologue_end
+0x000009ff: 00 DW_LNE_end_sequence
+ 0x00000000000003fd 94 18 2 0 0 end_sequence
+
+0x00000a02: 00 DW_LNE_set_address (0x0000000000000402)
+0x00000a09: 03 DW_LNS_advance_line (94)
+0x00000a0c: 05 DW_LNS_set_column (4)
+0x00000a0e: 04 DW_LNS_set_file (2)
+0x00000a10: 06 DW_LNS_negate_stmt
+0x00000a11: 0a DW_LNS_set_prologue_end
+0x00000a12: 00 DW_LNE_end_sequence
+ 0x0000000000000402 94 4 2 0 0 end_sequence
+
+0x00000a15: 00 DW_LNE_set_address (0x000000000000040a)
+0x00000a1c: 03 DW_LNS_advance_line (102)
+0x00000a1f: 05 DW_LNS_set_column (27)
+0x00000a21: 04 DW_LNS_set_file (2)
+0x00000a23: 0a DW_LNS_set_prologue_end
+0x00000a24: 00 DW_LNE_end_sequence
+ 0x000000000000040a 102 27 2 0 0 is_stmt end_sequence
+
+0x00000a27: 00 DW_LNE_set_address (0x000000000000040f)
+0x00000a2e: 03 DW_LNS_advance_line (102)
+0x00000a31: 05 DW_LNS_set_column (18)
+0x00000a33: 04 DW_LNS_set_file (2)
+0x00000a35: 06 DW_LNS_negate_stmt
+0x00000a36: 0a DW_LNS_set_prologue_end
+0x00000a37: 00 DW_LNE_end_sequence
+ 0x000000000000040f 102 18 2 0 0 end_sequence
+
+0x00000a3a: 00 DW_LNE_set_address (0x0000000000000415)
+0x00000a41: 03 DW_LNS_advance_line (103)
+0x00000a44: 05 DW_LNS_set_column (18)
+0x00000a46: 04 DW_LNS_set_file (2)
+0x00000a48: 0a DW_LNS_set_prologue_end
+0x00000a49: 00 DW_LNE_end_sequence
+ 0x0000000000000415 103 18 2 0 0 is_stmt end_sequence
+
+0x00000a4c: 00 DW_LNE_set_address (0x0000000000000423)
+0x00000a53: 03 DW_LNS_advance_line (105)
+0x00000a56: 05 DW_LNS_set_column (18)
+0x00000a58: 04 DW_LNS_set_file (2)
+0x00000a5a: 0a DW_LNS_set_prologue_end
+0x00000a5b: 00 DW_LNE_end_sequence
+ 0x0000000000000423 105 18 2 0 0 is_stmt end_sequence
+
+0x00000a5e: 00 DW_LNE_set_address (0x0000000000000428)
+0x00000a65: 03 DW_LNS_advance_line (105)
+0x00000a68: 05 DW_LNS_set_column (4)
+0x00000a6a: 04 DW_LNS_set_file (2)
+0x00000a6c: 06 DW_LNS_negate_stmt
+0x00000a6d: 0a DW_LNS_set_prologue_end
+0x00000a6e: 00 DW_LNE_end_sequence
+ 0x0000000000000428 105 4 2 0 0 end_sequence
+
+0x00000a71: 00 DW_LNE_set_address (0x000000000000042c)
+0x00000a78: 03 DW_LNS_advance_line (106)
+0x00000a7b: 05 DW_LNS_set_column (7)
+0x00000a7d: 04 DW_LNS_set_file (2)
+0x00000a7f: 0a DW_LNS_set_prologue_end
+0x00000a80: 00 DW_LNE_end_sequence
+ 0x000000000000042c 106 7 2 0 0 is_stmt end_sequence
+
+0x00000a83: 00 DW_LNE_set_address (0x0000000000000434)
+0x00000a8a: 03 DW_LNS_advance_line (106)
+0x00000a8d: 05 DW_LNS_set_column (16)
+0x00000a8f: 04 DW_LNS_set_file (2)
+0x00000a91: 06 DW_LNS_negate_stmt
+0x00000a92: 0a DW_LNS_set_prologue_end
+0x00000a93: 00 DW_LNE_end_sequence
+ 0x0000000000000434 106 16 2 0 0 end_sequence
+
+0x00000a96: 00 DW_LNE_set_address (0x0000000000000439)
+0x00000a9d: 03 DW_LNS_advance_line (105)
+0x00000aa0: 05 DW_LNS_set_column (24)
+0x00000aa2: 04 DW_LNS_set_file (2)
+0x00000aa4: 0a DW_LNS_set_prologue_end
+0x00000aa5: 00 DW_LNE_end_sequence
+ 0x0000000000000439 105 24 2 0 0 is_stmt end_sequence
+
+0x00000aa8: 00 DW_LNE_set_address (0x000000000000043e)
+0x00000aaf: 03 DW_LNS_advance_line (105)
+0x00000ab2: 05 DW_LNS_set_column (18)
+0x00000ab4: 04 DW_LNS_set_file (2)
+0x00000ab6: 06 DW_LNS_negate_stmt
+0x00000ab7: 0a DW_LNS_set_prologue_end
+0x00000ab8: 00 DW_LNE_end_sequence
+ 0x000000000000043e 105 18 2 0 0 end_sequence
+
+0x00000abb: 00 DW_LNE_set_address (0x0000000000000464)
+0x00000ac2: 03 DW_LNS_advance_line (112)
+0x00000ac5: 05 DW_LNS_set_column (13)
+0x00000ac7: 04 DW_LNS_set_file (2)
+0x00000ac9: 0a DW_LNS_set_prologue_end
+0x00000aca: 00 DW_LNE_end_sequence
+ 0x0000000000000464 112 13 2 0 0 is_stmt end_sequence
+
+0x00000acd: 00 DW_LNE_set_address (0x0000000000000466)
+0x00000ad4: 03 DW_LNS_advance_line (112)
+0x00000ad7: 05 DW_LNS_set_column (26)
+0x00000ad9: 04 DW_LNS_set_file (2)
+0x00000adb: 06 DW_LNS_negate_stmt
+0x00000adc: 0a DW_LNS_set_prologue_end
+0x00000add: 00 DW_LNE_end_sequence
+ 0x0000000000000466 112 26 2 0 0 end_sequence
+
+0x00000ae0: 00 DW_LNE_set_address (0x0000000000000473)
+0x00000ae7: 03 DW_LNS_advance_line (112)
+0x00000aea: 05 DW_LNS_set_column (35)
+0x00000aec: 04 DW_LNS_set_file (2)
+0x00000aee: 06 DW_LNS_negate_stmt
+0x00000aef: 0a DW_LNS_set_prologue_end
+0x00000af0: 00 DW_LNE_end_sequence
+ 0x0000000000000473 112 35 2 0 0 end_sequence
+
+0x00000af3: 00 DW_LNE_set_address (0x0000000000000474)
+0x00000afa: 03 DW_LNS_advance_line (112)
+0x00000afd: 05 DW_LNS_set_column (13)
+0x00000aff: 04 DW_LNS_set_file (2)
+0x00000b01: 06 DW_LNS_negate_stmt
+0x00000b02: 0a DW_LNS_set_prologue_end
+0x00000b03: 00 DW_LNE_end_sequence
+ 0x0000000000000474 112 13 2 0 0 end_sequence
+
+0x00000b06: 00 DW_LNE_set_address (0x0000000000000482)
+0x00000b0d: 03 DW_LNS_advance_line (111)
+0x00000b10: 05 DW_LNS_set_column (30)
+0x00000b12: 04 DW_LNS_set_file (2)
+0x00000b14: 0a DW_LNS_set_prologue_end
+0x00000b15: 00 DW_LNE_end_sequence
+ 0x0000000000000482 111 30 2 0 0 is_stmt end_sequence
+
+0x00000b18: 00 DW_LNE_set_address (0x0000000000000487)
+0x00000b1f: 03 DW_LNS_advance_line (111)
+0x00000b22: 05 DW_LNS_set_column (24)
+0x00000b24: 04 DW_LNS_set_file (2)
+0x00000b26: 06 DW_LNS_negate_stmt
+0x00000b27: 0a DW_LNS_set_prologue_end
+0x00000b28: 00 DW_LNE_end_sequence
+ 0x0000000000000487 111 24 2 0 0 end_sequence
+
+0x00000b2b: 00 DW_LNE_set_address (0x000000000000048c)
+0x00000b32: 03 DW_LNS_advance_line (111)
+0x00000b35: 05 DW_LNS_set_column (10)
+0x00000b37: 04 DW_LNS_set_file (2)
+0x00000b39: 06 DW_LNS_negate_stmt
+0x00000b3a: 0a DW_LNS_set_prologue_end
+0x00000b3b: 00 DW_LNE_end_sequence
+ 0x000000000000048c 111 10 2 0 0 end_sequence
+
+0x00000b3e: 00 DW_LNE_set_address (0x0000000000000491)
+0x00000b45: 03 DW_LNS_advance_line (113)
+0x00000b48: 05 DW_LNS_set_column (10)
+0x00000b4a: 04 DW_LNS_set_file (2)
+0x00000b4c: 0a DW_LNS_set_prologue_end
+0x00000b4d: 00 DW_LNE_end_sequence
+ 0x0000000000000491 113 10 2 0 0 is_stmt end_sequence
+
+0x00000b50: 00 DW_LNE_set_address (0x0000000000000496)
+0x00000b57: 03 DW_LNS_advance_line (118)
+0x00000b5a: 05 DW_LNS_set_column (16)
+0x00000b5c: 04 DW_LNS_set_file (2)
+0x00000b5e: 0a DW_LNS_set_prologue_end
+0x00000b5f: 00 DW_LNE_end_sequence
+ 0x0000000000000496 118 16 2 0 0 is_stmt end_sequence
+
+0x00000b62: 00 DW_LNE_set_address (0x000000000000049b)
+0x00000b69: 03 DW_LNS_advance_line (118)
+0x00000b6c: 05 DW_LNS_set_column (7)
+0x00000b6e: 04 DW_LNS_set_file (2)
+0x00000b70: 06 DW_LNS_negate_stmt
+0x00000b71: 0a DW_LNS_set_prologue_end
+0x00000b72: 00 DW_LNE_end_sequence
+ 0x000000000000049b 118 7 2 0 0 end_sequence
+
+0x00000b75: 00 DW_LNE_set_address (0x000000000000049f)
+0x00000b7c: 03 DW_LNS_advance_line (119)
+0x00000b7f: 05 DW_LNS_set_column (10)
+0x00000b81: 04 DW_LNS_set_file (2)
+0x00000b83: 0a DW_LNS_set_prologue_end
+0x00000b84: 00 DW_LNE_end_sequence
+ 0x000000000000049f 119 10 2 0 0 is_stmt end_sequence
+
+0x00000b87: 00 DW_LNE_set_address (0x00000000000004a1)
+0x00000b8e: 03 DW_LNS_advance_line (119)
+0x00000b91: 05 DW_LNS_set_column (18)
+0x00000b93: 04 DW_LNS_set_file (2)
+0x00000b95: 06 DW_LNS_negate_stmt
+0x00000b96: 0a DW_LNS_set_prologue_end
+0x00000b97: 00 DW_LNE_end_sequence
+ 0x00000000000004a1 119 18 2 0 0 end_sequence
+
+0x00000b9a: 00 DW_LNE_set_address (0x00000000000004aa)
+0x00000ba1: 03 DW_LNS_advance_line (119)
+0x00000ba4: 05 DW_LNS_set_column (10)
+0x00000ba6: 04 DW_LNS_set_file (2)
+0x00000ba8: 06 DW_LNS_negate_stmt
+0x00000ba9: 0a DW_LNS_set_prologue_end
+0x00000baa: 00 DW_LNE_end_sequence
+ 0x00000000000004aa 119 10 2 0 0 end_sequence
+
+0x00000bad: 00 DW_LNE_set_address (0x00000000000004ac)
+0x00000bb4: 03 DW_LNS_advance_line (119)
+0x00000bb7: 05 DW_LNS_set_column (23)
+0x00000bb9: 04 DW_LNS_set_file (2)
+0x00000bbb: 06 DW_LNS_negate_stmt
+0x00000bbc: 0a DW_LNS_set_prologue_end
+0x00000bbd: 00 DW_LNE_end_sequence
+ 0x00000000000004ac 119 23 2 0 0 end_sequence
+
+0x00000bc0: 00 DW_LNE_set_address (0x00000000000004b1)
+0x00000bc7: 03 DW_LNS_advance_line (118)
+0x00000bca: 05 DW_LNS_set_column (16)
+0x00000bcc: 04 DW_LNS_set_file (2)
+0x00000bce: 0a DW_LNS_set_prologue_end
+0x00000bcf: 00 DW_LNE_end_sequence
+ 0x00000000000004b1 118 16 2 0 0 is_stmt end_sequence
+
+0x00000bd2: 00 DW_LNE_set_address (0x00000000000004bc)
+0x00000bd9: 03 DW_LNS_advance_line (118)
+0x00000bdc: 05 DW_LNS_set_column (7)
+0x00000bde: 04 DW_LNS_set_file (2)
+0x00000be0: 06 DW_LNS_negate_stmt
+0x00000be1: 0a DW_LNS_set_prologue_end
+0x00000be2: 00 DW_LNE_end_sequence
+ 0x00000000000004bc 118 7 2 0 0 end_sequence
+
+0x00000be5: 00 DW_LNE_set_address (0x00000000000004c2)
+0x00000bec: 03 DW_LNS_advance_line (122)
+0x00000bef: 05 DW_LNS_set_column (16)
+0x00000bf1: 04 DW_LNS_set_file (2)
+0x00000bf3: 0a DW_LNS_set_prologue_end
+0x00000bf4: 00 DW_LNE_end_sequence
+ 0x00000000000004c2 122 16 2 0 0 is_stmt end_sequence
+
+0x00000bf7: 00 DW_LNE_set_address (0x00000000000004d6)
+0x00000bfe: 03 DW_LNS_advance_line (125)
+0x00000c01: 05 DW_LNS_set_column (22)
+0x00000c03: 04 DW_LNS_set_file (2)
+0x00000c05: 0a DW_LNS_set_prologue_end
+0x00000c06: 00 DW_LNE_end_sequence
+ 0x00000000000004d6 125 22 2 0 0 is_stmt end_sequence
+
+0x00000c09: 00 DW_LNE_set_address (0x00000000000004df)
+0x00000c10: 03 DW_LNS_advance_line (126)
+0x00000c13: 05 DW_LNS_set_column (27)
+0x00000c15: 04 DW_LNS_set_file (2)
+0x00000c17: 0a DW_LNS_set_prologue_end
+0x00000c18: 00 DW_LNE_end_sequence
+ 0x00000000000004df 126 27 2 0 0 is_stmt end_sequence
+
+0x00000c1b: 00 DW_LNE_set_address (0x00000000000004e4)
+0x00000c22: 03 DW_LNS_advance_line (126)
+0x00000c25: 05 DW_LNS_set_column (13)
+0x00000c27: 04 DW_LNS_set_file (2)
+0x00000c29: 06 DW_LNS_negate_stmt
+0x00000c2a: 0a DW_LNS_set_prologue_end
+0x00000c2b: 00 DW_LNE_end_sequence
+ 0x00000000000004e4 126 13 2 0 0 end_sequence
+
+0x00000c2e: 00 DW_LNE_set_address (0x00000000000004e8)
+0x00000c35: 03 DW_LNS_advance_line (127)
+0x00000c38: 05 DW_LNS_set_column (16)
+0x00000c3a: 04 DW_LNS_set_file (2)
+0x00000c3c: 0a DW_LNS_set_prologue_end
+0x00000c3d: 00 DW_LNE_end_sequence
+ 0x00000000000004e8 127 16 2 0 0 is_stmt end_sequence
+
+0x00000c40: 00 DW_LNE_set_address (0x00000000000004f0)
+0x00000c47: 03 DW_LNS_advance_line (127)
+0x00000c4a: 05 DW_LNS_set_column (27)
+0x00000c4c: 04 DW_LNS_set_file (2)
+0x00000c4e: 06 DW_LNS_negate_stmt
+0x00000c4f: 0a DW_LNS_set_prologue_end
+0x00000c50: 00 DW_LNE_end_sequence
+ 0x00000000000004f0 127 27 2 0 0 end_sequence
+
+0x00000c53: 00 DW_LNE_set_address (0x00000000000004f2)
+0x00000c5a: 03 DW_LNS_advance_line (127)
+0x00000c5d: 05 DW_LNS_set_column (35)
+0x00000c5f: 04 DW_LNS_set_file (2)
+0x00000c61: 06 DW_LNS_negate_stmt
+0x00000c62: 0a DW_LNS_set_prologue_end
+0x00000c63: 00 DW_LNE_end_sequence
+ 0x00000000000004f2 127 35 2 0 0 end_sequence
+
+0x00000c66: 00 DW_LNE_set_address (0x00000000000004fb)
+0x00000c6d: 03 DW_LNS_advance_line (127)
+0x00000c70: 05 DW_LNS_set_column (27)
+0x00000c72: 04 DW_LNS_set_file (2)
+0x00000c74: 06 DW_LNS_negate_stmt
+0x00000c75: 0a DW_LNS_set_prologue_end
+0x00000c76: 00 DW_LNE_end_sequence
+ 0x00000000000004fb 127 27 2 0 0 end_sequence
+
+0x00000c79: 00 DW_LNE_set_address (0x0000000000000500)
+0x00000c80: 03 DW_LNS_advance_line (127)
+0x00000c83: 05 DW_LNS_set_column (25)
+0x00000c85: 04 DW_LNS_set_file (2)
+0x00000c87: 06 DW_LNS_negate_stmt
+0x00000c88: 0a DW_LNS_set_prologue_end
+0x00000c89: 00 DW_LNE_end_sequence
+ 0x0000000000000500 127 25 2 0 0 end_sequence
+
+0x00000c8c: 00 DW_LNE_set_address (0x0000000000000503)
+0x00000c93: 03 DW_LNS_advance_line (126)
+0x00000c96: 05 DW_LNS_set_column (27)
+0x00000c98: 04 DW_LNS_set_file (2)
+0x00000c9a: 0a DW_LNS_set_prologue_end
+0x00000c9b: 00 DW_LNE_end_sequence
+ 0x0000000000000503 126 27 2 0 0 is_stmt end_sequence
+
+0x00000c9e: 00 DW_LNE_set_address (0x0000000000000508)
+0x00000ca5: 03 DW_LNS_advance_line (126)
+0x00000ca8: 05 DW_LNS_set_column (13)
+0x00000caa: 04 DW_LNS_set_file (2)
+0x00000cac: 06 DW_LNS_negate_stmt
+0x00000cad: 0a DW_LNS_set_prologue_end
+0x00000cae: 00 DW_LNE_end_sequence
+ 0x0000000000000508 126 13 2 0 0 end_sequence
+
+0x00000cb1: 00 DW_LNE_set_address (0x0000000000000510)
+0x00000cb8: 03 DW_LNS_advance_line (128)
+0x00000cbb: 05 DW_LNS_set_column (13)
+0x00000cbd: 04 DW_LNS_set_file (2)
+0x00000cbf: 0a DW_LNS_set_prologue_end
+0x00000cc0: 00 DW_LNE_end_sequence
+ 0x0000000000000510 128 13 2 0 0 is_stmt end_sequence
+
+0x00000cc3: 00 DW_LNE_set_address (0x0000000000000518)
+0x00000cca: 03 DW_LNS_advance_line (128)
+0x00000ccd: 05 DW_LNS_set_column (22)
+0x00000ccf: 04 DW_LNS_set_file (2)
+0x00000cd1: 06 DW_LNS_negate_stmt
+0x00000cd2: 0a DW_LNS_set_prologue_end
+0x00000cd3: 00 DW_LNE_end_sequence
+ 0x0000000000000518 128 22 2 0 0 end_sequence
+
+0x00000cd6: 00 DW_LNE_set_address (0x000000000000051d)
+0x00000cdd: 03 DW_LNS_advance_line (130)
+0x00000ce0: 05 DW_LNS_set_column (16)
+0x00000ce2: 04 DW_LNS_set_file (2)
+0x00000ce4: 0a DW_LNS_set_prologue_end
+0x00000ce5: 00 DW_LNE_end_sequence
+ 0x000000000000051d 130 16 2 0 0 is_stmt end_sequence
+
+0x00000ce8: 00 DW_LNE_set_address (0x0000000000000525)
+0x00000cef: 03 DW_LNS_advance_line (130)
+0x00000cf2: 05 DW_LNS_set_column (14)
+0x00000cf4: 04 DW_LNS_set_file (2)
+0x00000cf6: 06 DW_LNS_negate_stmt
+0x00000cf7: 0a DW_LNS_set_prologue_end
+0x00000cf8: 00 DW_LNE_end_sequence
+ 0x0000000000000525 130 14 2 0 0 end_sequence
+
+0x00000cfb: 00 DW_LNE_set_address (0x0000000000000536)
+0x00000d02: 03 DW_LNS_advance_line (130)
+0x00000d05: 05 DW_LNS_set_column (25)
+0x00000d07: 04 DW_LNS_set_file (2)
+0x00000d09: 06 DW_LNS_negate_stmt
+0x00000d0a: 0a DW_LNS_set_prologue_end
+0x00000d0b: 00 DW_LNE_end_sequence
+ 0x0000000000000536 130 25 2 0 0 end_sequence
+
+0x00000d0e: 00 DW_LNE_set_address (0x000000000000053b)
+0x00000d15: 03 DW_LNS_advance_line (130)
+0x00000d18: 05 DW_LNS_set_column (14)
+0x00000d1a: 04 DW_LNS_set_file (2)
+0x00000d1c: 06 DW_LNS_negate_stmt
+0x00000d1d: 0a DW_LNS_set_prologue_end
+0x00000d1e: 00 DW_LNE_end_sequence
+ 0x000000000000053b 130 14 2 0 0 end_sequence
+
+0x00000d21: 00 DW_LNE_set_address (0x000000000000053d)
+0x00000d28: 03 DW_LNS_advance_line (133)
+0x00000d2b: 05 DW_LNS_set_column (11)
+0x00000d2d: 04 DW_LNS_set_file (2)
+0x00000d2f: 0a DW_LNS_set_prologue_end
+0x00000d30: 00 DW_LNE_end_sequence
+ 0x000000000000053d 133 11 2 0 0 is_stmt end_sequence
+
+0x00000d33: 00 DW_LNE_set_address (0x0000000000000542)
+0x00000d3a: 03 DW_LNS_advance_line (122)
+0x00000d3d: 05 DW_LNS_set_column (16)
+0x00000d3f: 04 DW_LNS_set_file (2)
+0x00000d41: 0a DW_LNS_set_prologue_end
+0x00000d42: 00 DW_LNE_end_sequence
+ 0x0000000000000542 122 16 2 0 0 is_stmt end_sequence
+
+0x00000d45: 00 DW_LNE_set_address (0x0000000000000547)
+0x00000d4c: 03 DW_LNS_advance_line (122)
+0x00000d4f: 05 DW_LNS_set_column (14)
+0x00000d51: 04 DW_LNS_set_file (2)
+0x00000d53: 06 DW_LNS_negate_stmt
+0x00000d54: 0a DW_LNS_set_prologue_end
+0x00000d55: 00 DW_LNE_end_sequence
+ 0x0000000000000547 122 14 2 0 0 end_sequence
+
+0x00000d58: 00 DW_LNE_set_address (0x000000000000054d)
+0x00000d5f: 03 DW_LNS_advance_line (110)
+0x00000d62: 05 DW_LNS_set_column (11)
+0x00000d64: 04 DW_LNS_set_file (2)
+0x00000d66: 0a DW_LNS_set_prologue_end
+0x00000d67: 00 DW_LNE_end_sequence
+ 0x000000000000054d 110 11 2 0 0 is_stmt end_sequence
+
+0x00000d6a: 00 DW_LNE_set_address (0x000000000000055c)
+0x00000d71: 03 DW_LNS_advance_line (113)
+0x00000d74: 05 DW_LNS_set_column (10)
+0x00000d76: 04 DW_LNS_set_file (2)
+0x00000d78: 0a DW_LNS_set_prologue_end
+0x00000d79: 00 DW_LNE_end_sequence
+ 0x000000000000055c 113 10 2 0 0 is_stmt end_sequence
+
+0x00000d7c: 00 DW_LNE_set_address (0x0000000000000561)
+0x00000d83: 03 DW_LNS_advance_line (118)
+0x00000d86: 05 DW_LNS_set_column (16)
+0x00000d88: 04 DW_LNS_set_file (2)
+0x00000d8a: 0a DW_LNS_set_prologue_end
+0x00000d8b: 00 DW_LNE_end_sequence
+ 0x0000000000000561 118 16 2 0 0 is_stmt end_sequence
+
+0x00000d8e: 00 DW_LNE_set_address (0x0000000000000566)
+0x00000d95: 03 DW_LNS_advance_line (118)
+0x00000d98: 05 DW_LNS_set_column (7)
+0x00000d9a: 04 DW_LNS_set_file (2)
+0x00000d9c: 06 DW_LNS_negate_stmt
+0x00000d9d: 0a DW_LNS_set_prologue_end
+0x00000d9e: 00 DW_LNE_end_sequence
+ 0x0000000000000566 118 7 2 0 0 end_sequence
+
+0x00000da1: 00 DW_LNE_set_address (0x000000000000056a)
+0x00000da8: 03 DW_LNS_advance_line (119)
+0x00000dab: 05 DW_LNS_set_column (10)
+0x00000dad: 04 DW_LNS_set_file (2)
+0x00000daf: 0a DW_LNS_set_prologue_end
+0x00000db0: 00 DW_LNE_end_sequence
+ 0x000000000000056a 119 10 2 0 0 is_stmt end_sequence
+
+0x00000db3: 00 DW_LNE_set_address (0x000000000000056c)
+0x00000dba: 03 DW_LNS_advance_line (119)
+0x00000dbd: 05 DW_LNS_set_column (18)
+0x00000dbf: 04 DW_LNS_set_file (2)
+0x00000dc1: 06 DW_LNS_negate_stmt
+0x00000dc2: 0a DW_LNS_set_prologue_end
+0x00000dc3: 00 DW_LNE_end_sequence
+ 0x000000000000056c 119 18 2 0 0 end_sequence
+
+0x00000dc6: 00 DW_LNE_set_address (0x0000000000000575)
+0x00000dcd: 03 DW_LNS_advance_line (119)
+0x00000dd0: 05 DW_LNS_set_column (10)
+0x00000dd2: 04 DW_LNS_set_file (2)
+0x00000dd4: 06 DW_LNS_negate_stmt
+0x00000dd5: 0a DW_LNS_set_prologue_end
+0x00000dd6: 00 DW_LNE_end_sequence
+ 0x0000000000000575 119 10 2 0 0 end_sequence
+
+0x00000dd9: 00 DW_LNE_set_address (0x0000000000000577)
+0x00000de0: 03 DW_LNS_advance_line (119)
+0x00000de3: 05 DW_LNS_set_column (23)
+0x00000de5: 04 DW_LNS_set_file (2)
+0x00000de7: 06 DW_LNS_negate_stmt
+0x00000de8: 0a DW_LNS_set_prologue_end
+0x00000de9: 00 DW_LNE_end_sequence
+ 0x0000000000000577 119 23 2 0 0 end_sequence
+
+0x00000dec: 00 DW_LNE_set_address (0x000000000000057c)
+0x00000df3: 03 DW_LNS_advance_line (118)
+0x00000df6: 05 DW_LNS_set_column (16)
+0x00000df8: 04 DW_LNS_set_file (2)
+0x00000dfa: 0a DW_LNS_set_prologue_end
+0x00000dfb: 00 DW_LNE_end_sequence
+ 0x000000000000057c 118 16 2 0 0 is_stmt end_sequence
+
+0x00000dfe: 00 DW_LNE_set_address (0x0000000000000587)
+0x00000e05: 03 DW_LNS_advance_line (118)
+0x00000e08: 05 DW_LNS_set_column (7)
+0x00000e0a: 04 DW_LNS_set_file (2)
+0x00000e0c: 06 DW_LNS_negate_stmt
+0x00000e0d: 0a DW_LNS_set_prologue_end
+0x00000e0e: 00 DW_LNE_end_sequence
+ 0x0000000000000587 118 7 2 0 0 end_sequence
+
+0x00000e11: 00 DW_LNE_set_address (0x000000000000058d)
+0x00000e18: 03 DW_LNS_advance_line (122)
+0x00000e1b: 05 DW_LNS_set_column (16)
+0x00000e1d: 04 DW_LNS_set_file (2)
+0x00000e1f: 0a DW_LNS_set_prologue_end
+0x00000e20: 00 DW_LNE_end_sequence
+ 0x000000000000058d 122 16 2 0 0 is_stmt end_sequence
+
+0x00000e23: 00 DW_LNE_set_address (0x0000000000000592)
+0x00000e2a: 03 DW_LNS_advance_line (122)
+0x00000e2d: 05 DW_LNS_set_column (14)
+0x00000e2f: 04 DW_LNS_set_file (2)
+0x00000e31: 06 DW_LNS_negate_stmt
+0x00000e32: 0a DW_LNS_set_prologue_end
+0x00000e33: 00 DW_LNE_end_sequence
+ 0x0000000000000592 122 14 2 0 0 end_sequence
+
+0x00000e36: 00 DW_LNE_set_address (0x000000000000059b)
+0x00000e3d: 03 DW_LNS_advance_line (125)
+0x00000e40: 05 DW_LNS_set_column (22)
+0x00000e42: 04 DW_LNS_set_file (2)
+0x00000e44: 0a DW_LNS_set_prologue_end
+0x00000e45: 00 DW_LNE_end_sequence
+ 0x000000000000059b 125 22 2 0 0 is_stmt end_sequence
+
+0x00000e48: 00 DW_LNE_set_address (0x00000000000005aa)
+0x00000e4f: 03 DW_LNS_advance_line (126)
+0x00000e52: 05 DW_LNS_set_column (27)
+0x00000e54: 04 DW_LNS_set_file (2)
+0x00000e56: 0a DW_LNS_set_prologue_end
+0x00000e57: 00 DW_LNE_end_sequence
+ 0x00000000000005aa 126 27 2 0 0 is_stmt end_sequence
+
+0x00000e5a: 00 DW_LNE_set_address (0x00000000000005af)
+0x00000e61: 03 DW_LNS_advance_line (126)
+0x00000e64: 05 DW_LNS_set_column (13)
+0x00000e66: 04 DW_LNS_set_file (2)
+0x00000e68: 06 DW_LNS_negate_stmt
+0x00000e69: 0a DW_LNS_set_prologue_end
+0x00000e6a: 00 DW_LNE_end_sequence
+ 0x00000000000005af 126 13 2 0 0 end_sequence
+
+0x00000e6d: 00 DW_LNE_set_address (0x00000000000005b3)
+0x00000e74: 03 DW_LNS_advance_line (127)
+0x00000e77: 05 DW_LNS_set_column (16)
+0x00000e79: 04 DW_LNS_set_file (2)
+0x00000e7b: 0a DW_LNS_set_prologue_end
+0x00000e7c: 00 DW_LNE_end_sequence
+ 0x00000000000005b3 127 16 2 0 0 is_stmt end_sequence
+
+0x00000e7f: 00 DW_LNE_set_address (0x00000000000005bb)
+0x00000e86: 03 DW_LNS_advance_line (127)
+0x00000e89: 05 DW_LNS_set_column (27)
+0x00000e8b: 04 DW_LNS_set_file (2)
+0x00000e8d: 06 DW_LNS_negate_stmt
+0x00000e8e: 0a DW_LNS_set_prologue_end
+0x00000e8f: 00 DW_LNE_end_sequence
+ 0x00000000000005bb 127 27 2 0 0 end_sequence
+
+0x00000e92: 00 DW_LNE_set_address (0x00000000000005bd)
+0x00000e99: 03 DW_LNS_advance_line (127)
+0x00000e9c: 05 DW_LNS_set_column (35)
+0x00000e9e: 04 DW_LNS_set_file (2)
+0x00000ea0: 06 DW_LNS_negate_stmt
+0x00000ea1: 0a DW_LNS_set_prologue_end
+0x00000ea2: 00 DW_LNE_end_sequence
+ 0x00000000000005bd 127 35 2 0 0 end_sequence
+
+0x00000ea5: 00 DW_LNE_set_address (0x00000000000005c6)
+0x00000eac: 03 DW_LNS_advance_line (127)
+0x00000eaf: 05 DW_LNS_set_column (27)
+0x00000eb1: 04 DW_LNS_set_file (2)
+0x00000eb3: 06 DW_LNS_negate_stmt
+0x00000eb4: 0a DW_LNS_set_prologue_end
+0x00000eb5: 00 DW_LNE_end_sequence
+ 0x00000000000005c6 127 27 2 0 0 end_sequence
+
+0x00000eb8: 00 DW_LNE_set_address (0x00000000000005cb)
+0x00000ebf: 03 DW_LNS_advance_line (127)
+0x00000ec2: 05 DW_LNS_set_column (25)
+0x00000ec4: 04 DW_LNS_set_file (2)
+0x00000ec6: 06 DW_LNS_negate_stmt
+0x00000ec7: 0a DW_LNS_set_prologue_end
+0x00000ec8: 00 DW_LNE_end_sequence
+ 0x00000000000005cb 127 25 2 0 0 end_sequence
+
+0x00000ecb: 00 DW_LNE_set_address (0x00000000000005ce)
+0x00000ed2: 03 DW_LNS_advance_line (126)
+0x00000ed5: 05 DW_LNS_set_column (27)
+0x00000ed7: 04 DW_LNS_set_file (2)
+0x00000ed9: 0a DW_LNS_set_prologue_end
+0x00000eda: 00 DW_LNE_end_sequence
+ 0x00000000000005ce 126 27 2 0 0 is_stmt end_sequence
+
+0x00000edd: 00 DW_LNE_set_address (0x00000000000005d3)
+0x00000ee4: 03 DW_LNS_advance_line (126)
+0x00000ee7: 05 DW_LNS_set_column (13)
+0x00000ee9: 04 DW_LNS_set_file (2)
+0x00000eeb: 06 DW_LNS_negate_stmt
+0x00000eec: 0a DW_LNS_set_prologue_end
+0x00000eed: 00 DW_LNE_end_sequence
+ 0x00000000000005d3 126 13 2 0 0 end_sequence
+
+0x00000ef0: 00 DW_LNE_set_address (0x00000000000005db)
+0x00000ef7: 03 DW_LNS_advance_line (128)
+0x00000efa: 05 DW_LNS_set_column (13)
+0x00000efc: 04 DW_LNS_set_file (2)
+0x00000efe: 0a DW_LNS_set_prologue_end
+0x00000eff: 00 DW_LNE_end_sequence
+ 0x00000000000005db 128 13 2 0 0 is_stmt end_sequence
+
+0x00000f02: 00 DW_LNE_set_address (0x00000000000005e3)
+0x00000f09: 03 DW_LNS_advance_line (128)
+0x00000f0c: 05 DW_LNS_set_column (22)
+0x00000f0e: 04 DW_LNS_set_file (2)
+0x00000f10: 06 DW_LNS_negate_stmt
+0x00000f11: 0a DW_LNS_set_prologue_end
+0x00000f12: 00 DW_LNE_end_sequence
+ 0x00000000000005e3 128 22 2 0 0 end_sequence
+
+0x00000f15: 00 DW_LNE_set_address (0x00000000000005e8)
+0x00000f1c: 03 DW_LNS_advance_line (130)
+0x00000f1f: 05 DW_LNS_set_column (16)
+0x00000f21: 04 DW_LNS_set_file (2)
+0x00000f23: 0a DW_LNS_set_prologue_end
+0x00000f24: 00 DW_LNE_end_sequence
+ 0x00000000000005e8 130 16 2 0 0 is_stmt end_sequence
+
+0x00000f27: 00 DW_LNE_set_address (0x00000000000005f0)
+0x00000f2e: 03 DW_LNS_advance_line (130)
+0x00000f31: 05 DW_LNS_set_column (14)
+0x00000f33: 04 DW_LNS_set_file (2)
+0x00000f35: 06 DW_LNS_negate_stmt
+0x00000f36: 0a DW_LNS_set_prologue_end
+0x00000f37: 00 DW_LNE_end_sequence
+ 0x00000000000005f0 130 14 2 0 0 end_sequence
+
+0x00000f3a: 00 DW_LNE_set_address (0x0000000000000601)
+0x00000f41: 03 DW_LNS_advance_line (130)
+0x00000f44: 05 DW_LNS_set_column (25)
+0x00000f46: 04 DW_LNS_set_file (2)
+0x00000f48: 06 DW_LNS_negate_stmt
+0x00000f49: 0a DW_LNS_set_prologue_end
+0x00000f4a: 00 DW_LNE_end_sequence
+ 0x0000000000000601 130 25 2 0 0 end_sequence
+
+0x00000f4d: 00 DW_LNE_set_address (0x0000000000000606)
+0x00000f54: 03 DW_LNS_advance_line (130)
+0x00000f57: 05 DW_LNS_set_column (14)
+0x00000f59: 04 DW_LNS_set_file (2)
+0x00000f5b: 06 DW_LNS_negate_stmt
+0x00000f5c: 0a DW_LNS_set_prologue_end
+0x00000f5d: 00 DW_LNE_end_sequence
+ 0x0000000000000606 130 14 2 0 0 end_sequence
+
+0x00000f60: 00 DW_LNE_set_address (0x0000000000000608)
+0x00000f67: 03 DW_LNS_advance_line (133)
+0x00000f6a: 05 DW_LNS_set_column (11)
+0x00000f6c: 04 DW_LNS_set_file (2)
+0x00000f6e: 0a DW_LNS_set_prologue_end
+0x00000f6f: 00 DW_LNE_end_sequence
+ 0x0000000000000608 133 11 2 0 0 is_stmt end_sequence
+
+0x00000f72: 00 DW_LNE_set_address (0x000000000000060d)
+0x00000f79: 03 DW_LNS_advance_line (122)
+0x00000f7c: 05 DW_LNS_set_column (16)
+0x00000f7e: 04 DW_LNS_set_file (2)
+0x00000f80: 0a DW_LNS_set_prologue_end
+0x00000f81: 00 DW_LNE_end_sequence
+ 0x000000000000060d 122 16 2 0 0 is_stmt end_sequence
+
+0x00000f84: 00 DW_LNE_set_address (0x0000000000000612)
+0x00000f8b: 03 DW_LNS_advance_line (122)
+0x00000f8e: 05 DW_LNS_set_column (14)
+0x00000f90: 04 DW_LNS_set_file (2)
+0x00000f92: 06 DW_LNS_negate_stmt
+0x00000f93: 0a DW_LNS_set_prologue_end
+0x00000f94: 00 DW_LNE_end_sequence
+ 0x0000000000000612 122 14 2 0 0 end_sequence
+
+0x00000f97: 00 DW_LNE_set_address (0x0000000000000618)
+0x00000f9e: 03 DW_LNS_advance_line (110)
+0x00000fa1: 05 DW_LNS_set_column (11)
+0x00000fa3: 04 DW_LNS_set_file (2)
+0x00000fa5: 0a DW_LNS_set_prologue_end
+0x00000fa6: 00 DW_LNE_end_sequence
+ 0x0000000000000618 110 11 2 0 0 is_stmt end_sequence
+
+0x00000fa9: 00 DW_LNE_set_address (0x000000000000061e)
+0x00000fb0: 03 DW_LNS_advance_line (138)
+0x00000fb3: 05 DW_LNS_set_column (4)
+0x00000fb5: 04 DW_LNS_set_file (2)
+0x00000fb7: 0a DW_LNS_set_prologue_end
+0x00000fb8: 00 DW_LNE_end_sequence
+ 0x000000000000061e 138 4 2 0 0 is_stmt end_sequence
+
+0x00000fbb: 00 DW_LNE_set_address (0x0000000000000622)
+0x00000fc2: 03 DW_LNS_advance_line (139)
+0x00000fc5: 05 DW_LNS_set_column (4)
+0x00000fc7: 04 DW_LNS_set_file (2)
+0x00000fc9: 0a DW_LNS_set_prologue_end
+0x00000fca: 00 DW_LNE_end_sequence
+ 0x0000000000000622 139 4 2 0 0 is_stmt end_sequence
+
+0x00000fcd: 00 DW_LNE_set_address (0x000000000000062e)
+0x00000fd4: 03 DW_LNS_advance_line (141)
+0x00000fd7: 05 DW_LNS_set_column (4)
+0x00000fd9: 04 DW_LNS_set_file (2)
+0x00000fdb: 0a DW_LNS_set_prologue_end
+0x00000fdc: 00 DW_LNE_end_sequence
+ 0x000000000000062e 141 4 2 0 0 is_stmt end_sequence
+
+0x00000fdf: 00 DW_LNE_set_address (0x000000000000063d)
+0x00000fe6: 03 DW_LNS_advance_line (142)
+0x00000fe9: 05 DW_LNS_set_column (20)
+0x00000feb: 04 DW_LNS_set_file (2)
+0x00000fed: 0a DW_LNS_set_prologue_end
+0x00000fee: 00 DW_LNE_end_sequence
+ 0x000000000000063d 142 20 2 0 0 is_stmt end_sequence
+
+0x00000ff1: 00 DW_LNE_set_address (0x0000000000000645)
+0x00000ff8: 03 DW_LNS_advance_line (146)
+0x00000ffb: 05 DW_LNS_set_column (20)
+0x00000ffd: 04 DW_LNS_set_file (2)
+0x00000fff: 0a DW_LNS_set_prologue_end
+0x00001000: 00 DW_LNE_end_sequence
+ 0x0000000000000645 146 20 2 0 0 is_stmt end_sequence
+
+0x00001003: 00 DW_LNE_set_address (0x000000000000064c)
+0x0000100a: 03 DW_LNS_advance_line (147)
+0x0000100d: 05 DW_LNS_set_column (7)
+0x0000100f: 04 DW_LNS_set_file (2)
+0x00001011: 0a DW_LNS_set_prologue_end
+0x00001012: 00 DW_LNE_end_sequence
+ 0x000000000000064c 147 7 2 0 0 is_stmt end_sequence
+
+0x00001015: 00 DW_LNE_set_address (0x0000000000000650)
+0x0000101c: 03 DW_LNS_advance_line (143)
+0x0000101f: 05 DW_LNS_set_column (11)
+0x00001021: 04 DW_LNS_set_file (2)
+0x00001023: 0a DW_LNS_set_prologue_end
+0x00001024: 00 DW_LNE_end_sequence
+ 0x0000000000000650 143 11 2 0 0 is_stmt end_sequence
+
+0x00001027: 00 DW_LNE_set_address (0x0000000000000654)
+0x0000102e: 03 DW_LNS_advance_line (143)
+0x00001031: 05 DW_LNS_set_column (20)
+0x00001033: 04 DW_LNS_set_file (2)
+0x00001035: 06 DW_LNS_negate_stmt
+0x00001036: 0a DW_LNS_set_prologue_end
+0x00001037: 00 DW_LNE_end_sequence
+ 0x0000000000000654 143 20 2 0 0 end_sequence
+
+0x0000103a: 00 DW_LNE_set_address (0x0000000000000659)
+0x00001041: 03 DW_LNS_advance_line (143)
+0x00001044: 05 DW_LNS_set_column (11)
+0x00001046: 04 DW_LNS_set_file (2)
+0x00001048: 06 DW_LNS_negate_stmt
+0x00001049: 0a DW_LNS_set_prologue_end
+0x0000104a: 00 DW_LNE_end_sequence
+ 0x0000000000000659 143 11 2 0 0 end_sequence
+
+0x0000104d: 00 DW_LNE_set_address (0x0000000000000660)
+0x00001054: 03 DW_LNS_advance_line (141)
+0x00001057: 05 DW_LNS_set_column (4)
+0x00001059: 04 DW_LNS_set_file (2)
+0x0000105b: 0a DW_LNS_set_prologue_end
+0x0000105c: 00 DW_LNE_end_sequence
+ 0x0000000000000660 141 4 2 0 0 is_stmt end_sequence
+
+0x0000105f: 00 DW_LNE_set_address (0x0000000000000666)
+0x00001066: 03 DW_LNS_advance_line (159)
+0x00001069: 05 DW_LNS_set_column (4)
+0x0000106b: 04 DW_LNS_set_file (2)
+0x0000106d: 0a DW_LNS_set_prologue_end
+0x0000106e: 00 DW_LNE_end_sequence
+ 0x0000000000000666 159 4 2 0 0 is_stmt end_sequence
+
+0x00001071: 00 DW_LNE_set_address (0x000000000000067d)
+0x00001078: 03 DW_LNS_advance_line (161)
+0x0000107b: 05 DW_LNS_set_column (1)
+0x0000107d: 04 DW_LNS_set_file (2)
+0x0000107f: 0a DW_LNS_set_prologue_end
+0x00001080: 00 DW_LNE_end_sequence
+ 0x000000000000067d 161 1 2 0 0 is_stmt end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)"
+0x00000095: "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp"
+0x000000cf: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000fa: "free"
+0x000000ff: "atoi"
+0x00000104: "int"
+0x00000108: "char"
+0x0000010d: "i"
+0x0000010f: "n"
+0x00000111: "next"
+0x00000116: "worker_args"
+0x00000122: "std"
+0x00000126: "decltype(nullptr)"
+0x00000138: "nullptr_t"
+0x00000142: "_ZL8fannkuchi"
+0x00000150: "fannkuch"
+0x00000159: "showmax"
+0x00000161: "args"
+0x00000166: "perm1"
+0x0000016c: "count"
+0x00000172: "r"
+0x00000174: "maxflips"
+0x0000017d: "flips"
+0x00000183: "targs"
+0x00000189: "cleanup"
+0x00000191: "p0"
+0x00000194: "_Z15fannkuch_workerPv"
+0x000001aa: "fannkuch_worker"
+0x000001ba: "main"
+0x000001bf: "_arg"
+0x000001c4: "perm"
+0x000001c9: "k"
+0x000001cb: "j"
+0x000001cd: "tmp"
+0x000001d1: "argc"
+0x000001d6: "argv"
+
+.debug_ranges contents:
+00000000 00000182 000001c0
+00000000 000001ea 000001f3
+00000000 0000030b 00000349
+00000000 00000373 0000037c
+00000000 <End of list>
+00000028 00000514 0000055b
+00000028 000005db 00000628
+00000028 <End of list>
+00000040 00000003 0000039a
+00000040 0000039c 000006e2
+00000040 <End of list>
+(module
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
+ (type $i32_=>_none (func (param i32)))
+ (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
+ (import "env" "malloc" (func $malloc (param i32) (result i32)))
+ (import "env" "memcpy" (func $memcpy (param i32 i32 i32) (result i32)))
+ (import "env" "free" (func $free (param i32)))
+ (import "env" "atoi" (func $atoi (param i32) (result i32)))
+ (import "env" "puts" (func $puts (param i32) (result i32)))
+ (import "env" "iprintf" (func $iprintf (param i32 i32) (result i32)))
+ (import "env" "putchar" (func $putchar (param i32) (result i32)))
+ (memory $ 256 256)
+ (data (i32.const 1024) "Pfannkuchen(%d) = %d.\n\00%d\00Wrong argument.\00")
+ (table $ 1 1 funcref)
+ (global $global$0 (mut i32) (i32.const 5243952))
+ (global $global$1 i32 (i32.const 1066))
+ (export "memory" (memory $0))
+ (export "main" (func $main))
+ (export "__data_end" (global $global$1))
+ (func $fannkuch_worker\28void*\29 (; 7 ;) (param $0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (local $11 i32)
+ (local $12 i32)
+ (local $13 i32)
+ (local $14 i32)
+ (local $15 i32)
+ (local $16 i32)
+ ;; code offset: 0x8
+ (local.set $1
+ ;; code offset: 0x6
+ (i32.const 0)
+ )
+ ;; code offset: 0x18
+ (local.set $4
+ ;; code offset: 0x16
+ (call $malloc
+ ;; code offset: 0x14
+ (local.tee $3
+ ;; code offset: 0x13
+ (i32.shl
+ ;; code offset: 0xf
+ (local.tee $2
+ ;; code offset: 0xc
+ (i32.load offset=4
+ ;; code offset: 0xa
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x11
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x1e
+ (local.set $5
+ ;; code offset: 0x1c
+ (call $malloc
+ ;; code offset: 0x1a
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x24
+ (local.set $6
+ ;; code offset: 0x22
+ (call $malloc
+ ;; code offset: 0x20
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x26
+ (block $label$1
+ (block $label$2
+ (block $label$3
+ ;; code offset: 0x31
+ (br_if $label$3
+ ;; code offset: 0x30
+ (i32.le_s
+ ;; code offset: 0x2c
+ (local.get $2)
+ ;; code offset: 0x2e
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x33
+ (loop $label$4
+ ;; code offset: 0x3f
+ (i32.store
+ ;; code offset: 0x3c
+ (i32.add
+ ;; code offset: 0x35
+ (local.get $4)
+ ;; code offset: 0x3b
+ (i32.shl
+ ;; code offset: 0x37
+ (local.get $1)
+ ;; code offset: 0x39
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x3d
+ (local.get $1)
+ )
+ ;; code offset: 0x4c
+ (br_if $label$4
+ ;; code offset: 0x4b
+ (i32.ne
+ ;; code offset: 0x47
+ (local.tee $1
+ ;; code offset: 0x46
+ (i32.add
+ ;; code offset: 0x42
+ (local.get $1)
+ ;; code offset: 0x44
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x49
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x63
+ (i32.store
+ ;; code offset: 0x5b
+ (i32.add
+ ;; code offset: 0x4f
+ (local.get $4)
+ ;; code offset: 0x5a
+ (i32.shl
+ ;; code offset: 0x56
+ (local.tee $1
+ ;; code offset: 0x53
+ (i32.load
+ ;; code offset: 0x51
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x58
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x61
+ (local.tee $7
+ ;; code offset: 0x60
+ (i32.add
+ ;; code offset: 0x5c
+ (local.get $2)
+ ;; code offset: 0x5e
+ (i32.const -1)
+ )
+ )
+ )
+ ;; code offset: 0x72
+ (i32.store
+ ;; code offset: 0x6e
+ (local.tee $8
+ ;; code offset: 0x6d
+ (i32.add
+ ;; code offset: 0x66
+ (local.get $4)
+ ;; code offset: 0x6c
+ (i32.shl
+ ;; code offset: 0x68
+ (local.get $7)
+ ;; code offset: 0x6a
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x70
+ (local.get $1)
+ )
+ ;; code offset: 0x77
+ (local.set $9
+ ;; code offset: 0x75
+ (i32.const 0)
+ )
+ ;; code offset: 0x7e
+ (br_if $label$2
+ ;; code offset: 0x7d
+ (i32.le_s
+ ;; code offset: 0x79
+ (local.get $2)
+ ;; code offset: 0x7b
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x80
+ (loop $label$5
+ ;; code offset: 0x82
+ (block $label$6
+ ;; code offset: 0x89
+ (br_if $label$6
+ ;; code offset: 0x88
+ (i32.le_s
+ ;; code offset: 0x84
+ (local.get $2)
+ ;; code offset: 0x86
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x8b
+ (loop $label$7
+ ;; code offset: 0x9c
+ (i32.store
+ ;; code offset: 0x99
+ (i32.add
+ ;; code offset: 0x8d
+ (local.get $6)
+ ;; code offset: 0x98
+ (i32.shl
+ ;; code offset: 0x94
+ (local.tee $1
+ ;; code offset: 0x93
+ (i32.add
+ ;; code offset: 0x8f
+ (local.get $2)
+ ;; code offset: 0x91
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x96
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x9a
+ (local.get $2)
+ )
+ ;; code offset: 0xa4
+ (local.set $0
+ ;; code offset: 0xa3
+ (i32.gt_s
+ ;; code offset: 0x9f
+ (local.get $2)
+ ;; code offset: 0xa1
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0xa8
+ (local.set $2
+ ;; code offset: 0xa6
+ (local.get $1)
+ )
+ ;; code offset: 0xac
+ (br_if $label$7
+ ;; code offset: 0xaa
+ (local.get $0)
+ )
+ )
+ )
+ ;; code offset: 0xb0
+ (block $label$8
+ ;; code offset: 0xba
+ (br_if $label$8
+ ;; code offset: 0xb9
+ (i32.eqz
+ ;; code offset: 0xb7
+ (local.tee $10
+ ;; code offset: 0xb4
+ (i32.load
+ ;; code offset: 0xb2
+ (local.get $4)
+ )
+ )
+ )
+ )
+ ;; code offset: 0xc4
+ (br_if $label$8
+ ;; code offset: 0xc3
+ (i32.eq
+ ;; code offset: 0xbe
+ (i32.load
+ ;; code offset: 0xbc
+ (local.get $8)
+ )
+ ;; code offset: 0xc1
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0xd3
+ (local.set $12
+ ;; code offset: 0xd0
+ (i32.load
+ ;; code offset: 0xce
+ (local.tee $11
+ ;; code offset: 0xcc
+ (call $memcpy
+ ;; code offset: 0xc6
+ (local.get $5)
+ ;; code offset: 0xc8
+ (local.get $4)
+ ;; code offset: 0xca
+ (local.get $3)
+ )
+ )
+ )
+ )
+ ;; code offset: 0xd7
+ (local.set $0
+ ;; code offset: 0xd5
+ (i32.const 0)
+ )
+ ;; code offset: 0xd9
+ (loop $label$9
+ ;; code offset: 0xdd
+ (local.set $13
+ ;; code offset: 0xdb
+ (local.get $0)
+ )
+ ;; code offset: 0xdf
+ (block $label$10
+ ;; code offset: 0xe6
+ (br_if $label$10
+ ;; code offset: 0xe5
+ (i32.lt_s
+ ;; code offset: 0xe1
+ (local.get $12)
+ ;; code offset: 0xe3
+ (i32.const 3)
+ )
+ )
+ ;; code offset: 0xed
+ (local.set $1
+ ;; code offset: 0xec
+ (i32.add
+ ;; code offset: 0xe8
+ (local.get $12)
+ ;; code offset: 0xea
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0xf1
+ (local.set $0
+ ;; code offset: 0xef
+ (i32.const 1)
+ )
+ ;; code offset: 0xf3
+ (loop $label$11
+ ;; code offset: 0x102
+ (local.set $15
+ ;; code offset: 0xff
+ (i32.load
+ ;; code offset: 0xfd
+ (local.tee $14
+ ;; code offset: 0xfc
+ (i32.add
+ ;; code offset: 0xf5
+ (local.get $11)
+ ;; code offset: 0xfb
+ (i32.shl
+ ;; code offset: 0xf7
+ (local.get $0)
+ ;; code offset: 0xf9
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x113
+ (i32.store
+ ;; code offset: 0x104
+ (local.get $14)
+ ;; code offset: 0x110
+ (i32.load
+ ;; code offset: 0x10e
+ (local.tee $16
+ ;; code offset: 0x10d
+ (i32.add
+ ;; code offset: 0x106
+ (local.get $11)
+ ;; code offset: 0x10c
+ (i32.shl
+ ;; code offset: 0x108
+ (local.get $1)
+ ;; code offset: 0x10a
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x11a
+ (i32.store
+ ;; code offset: 0x116
+ (local.get $16)
+ ;; code offset: 0x118
+ (local.get $15)
+ )
+ ;; code offset: 0x12c
+ (br_if $label$11
+ ;; code offset: 0x12b
+ (i32.lt_s
+ ;; code offset: 0x122
+ (local.tee $0
+ ;; code offset: 0x121
+ (i32.add
+ ;; code offset: 0x11d
+ (local.get $0)
+ ;; code offset: 0x11f
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x129
+ (local.tee $1
+ ;; code offset: 0x128
+ (i32.add
+ ;; code offset: 0x124
+ (local.get $1)
+ ;; code offset: 0x126
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x13d
+ (local.set $1
+ ;; code offset: 0x13a
+ (i32.load
+ ;; code offset: 0x138
+ (local.tee $0
+ ;; code offset: 0x137
+ (i32.add
+ ;; code offset: 0x130
+ (local.get $11)
+ ;; code offset: 0x136
+ (i32.shl
+ ;; code offset: 0x132
+ (local.get $12)
+ ;; code offset: 0x134
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x143
+ (i32.store
+ ;; code offset: 0x13f
+ (local.get $0)
+ ;; code offset: 0x141
+ (local.get $12)
+ )
+ ;; code offset: 0x14b
+ (local.set $0
+ ;; code offset: 0x14a
+ (i32.add
+ ;; code offset: 0x146
+ (local.get $13)
+ ;; code offset: 0x148
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x14f
+ (local.set $12
+ ;; code offset: 0x14d
+ (local.get $1)
+ )
+ ;; code offset: 0x153
+ (br_if $label$9
+ ;; code offset: 0x151
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x160
+ (local.set $9
+ ;; code offset: 0x15f
+ (select
+ ;; code offset: 0x156
+ (local.get $9)
+ ;; code offset: 0x158
+ (local.get $0)
+ ;; code offset: 0x15e
+ (i32.gt_s
+ ;; code offset: 0x15a
+ (local.get $9)
+ ;; code offset: 0x15c
+ (local.get $13)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x168
+ (br_if $label$1
+ ;; code offset: 0x167
+ (i32.ge_s
+ ;; code offset: 0x163
+ (local.get $2)
+ ;; code offset: 0x165
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x16a
+ (loop $label$12
+ ;; code offset: 0x16e
+ (local.set $1
+ ;; code offset: 0x16c
+ (i32.const 0)
+ )
+ ;; code offset: 0x170
+ (block $label$13
+ ;; code offset: 0x177
+ (br_if $label$13
+ ;; code offset: 0x176
+ (i32.le_s
+ ;; code offset: 0x172
+ (local.get $2)
+ ;; code offset: 0x174
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x179
+ (loop $label$14
+ ;; code offset: 0x193
+ (i32.store
+ ;; code offset: 0x182
+ (i32.add
+ ;; code offset: 0x17b
+ (local.get $4)
+ ;; code offset: 0x181
+ (i32.shl
+ ;; code offset: 0x17d
+ (local.get $1)
+ ;; code offset: 0x17f
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x190
+ (i32.load
+ ;; code offset: 0x18f
+ (i32.add
+ ;; code offset: 0x183
+ (local.get $4)
+ ;; code offset: 0x18e
+ (i32.shl
+ ;; code offset: 0x18a
+ (local.tee $1
+ ;; code offset: 0x189
+ (i32.add
+ ;; code offset: 0x185
+ (local.get $1)
+ ;; code offset: 0x187
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x18c
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x19b
+ (br_if $label$14
+ ;; code offset: 0x19a
+ (i32.ne
+ ;; code offset: 0x196
+ (local.get $1)
+ ;; code offset: 0x198
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x1a0
+ (local.set $1
+ ;; code offset: 0x19e
+ (local.get $2)
+ )
+ )
+ ;; code offset: 0x1ad
+ (i32.store
+ ;; code offset: 0x1aa
+ (i32.add
+ ;; code offset: 0x1a3
+ (local.get $4)
+ ;; code offset: 0x1a9
+ (i32.shl
+ ;; code offset: 0x1a5
+ (local.get $1)
+ ;; code offset: 0x1a7
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x1ab
+ (local.get $10)
+ )
+ ;; code offset: 0x1c4
+ (i32.store
+ ;; code offset: 0x1b8
+ (local.tee $1
+ ;; code offset: 0x1b7
+ (i32.add
+ ;; code offset: 0x1b0
+ (local.get $6)
+ ;; code offset: 0x1b6
+ (i32.shl
+ ;; code offset: 0x1b2
+ (local.get $2)
+ ;; code offset: 0x1b4
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x1c3
+ (i32.add
+ ;; code offset: 0x1bf
+ (local.tee $1
+ ;; code offset: 0x1bc
+ (i32.load
+ ;; code offset: 0x1ba
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x1c1
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x1cc
+ (br_if $label$5
+ ;; code offset: 0x1cb
+ (i32.gt_s
+ ;; code offset: 0x1c7
+ (local.get $1)
+ ;; code offset: 0x1c9
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x1d8
+ (br_if $label$1
+ ;; code offset: 0x1d7
+ (i32.eq
+ ;; code offset: 0x1d3
+ (local.tee $2
+ ;; code offset: 0x1d2
+ (i32.add
+ ;; code offset: 0x1ce
+ (local.get $2)
+ ;; code offset: 0x1d0
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x1d5
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x1df
+ (local.set $10
+ ;; code offset: 0x1dc
+ (i32.load
+ ;; code offset: 0x1da
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x1e1
+ (br $label$12)
+ )
+ )
+ )
+ ;; code offset: 0x1fe
+ (i32.store
+ ;; code offset: 0x1f6
+ (i32.add
+ ;; code offset: 0x1ea
+ (local.get $4)
+ ;; code offset: 0x1f5
+ (i32.shl
+ ;; code offset: 0x1f1
+ (local.tee $1
+ ;; code offset: 0x1ee
+ (i32.load
+ ;; code offset: 0x1ec
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x1f3
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x1fc
+ (local.tee $7
+ ;; code offset: 0x1fb
+ (i32.add
+ ;; code offset: 0x1f7
+ (local.get $2)
+ ;; code offset: 0x1f9
+ (i32.const -1)
+ )
+ )
+ )
+ ;; code offset: 0x20d
+ (i32.store
+ ;; code offset: 0x209
+ (local.tee $8
+ ;; code offset: 0x208
+ (i32.add
+ ;; code offset: 0x201
+ (local.get $4)
+ ;; code offset: 0x207
+ (i32.shl
+ ;; code offset: 0x203
+ (local.get $7)
+ ;; code offset: 0x205
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x20b
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x213
+ (local.set $9
+ ;; code offset: 0x211
+ (i32.const 0)
+ )
+ ;; code offset: 0x215
+ (loop $label$15
+ ;; code offset: 0x217
+ (block $label$16
+ ;; code offset: 0x21e
+ (br_if $label$16
+ ;; code offset: 0x21d
+ (i32.lt_s
+ ;; code offset: 0x219
+ (local.get $2)
+ ;; code offset: 0x21b
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x220
+ (loop $label$17
+ ;; code offset: 0x231
+ (i32.store
+ ;; code offset: 0x22e
+ (i32.add
+ ;; code offset: 0x222
+ (local.get $6)
+ ;; code offset: 0x22d
+ (i32.shl
+ ;; code offset: 0x229
+ (local.tee $1
+ ;; code offset: 0x228
+ (i32.add
+ ;; code offset: 0x224
+ (local.get $2)
+ ;; code offset: 0x226
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x22b
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x22f
+ (local.get $2)
+ )
+ ;; code offset: 0x239
+ (local.set $0
+ ;; code offset: 0x238
+ (i32.gt_s
+ ;; code offset: 0x234
+ (local.get $2)
+ ;; code offset: 0x236
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x23d
+ (local.set $2
+ ;; code offset: 0x23b
+ (local.get $1)
+ )
+ ;; code offset: 0x241
+ (br_if $label$17
+ ;; code offset: 0x23f
+ (local.get $0)
+ )
+ )
+ )
+ ;; code offset: 0x245
+ (block $label$18
+ ;; code offset: 0x24f
+ (br_if $label$18
+ ;; code offset: 0x24e
+ (i32.eqz
+ ;; code offset: 0x24c
+ (local.tee $12
+ ;; code offset: 0x249
+ (i32.load
+ ;; code offset: 0x247
+ (local.get $4)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x259
+ (br_if $label$18
+ ;; code offset: 0x258
+ (i32.eq
+ ;; code offset: 0x253
+ (i32.load
+ ;; code offset: 0x251
+ (local.get $8)
+ )
+ ;; code offset: 0x256
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x260
+ (local.set $16
+ ;; code offset: 0x25d
+ (i32.load
+ ;; code offset: 0x25b
+ (local.get $5)
+ )
+ )
+ ;; code offset: 0x264
+ (local.set $0
+ ;; code offset: 0x262
+ (i32.const 0)
+ )
+ ;; code offset: 0x266
+ (loop $label$19
+ ;; code offset: 0x26a
+ (local.set $10
+ ;; code offset: 0x268
+ (local.get $0)
+ )
+ ;; code offset: 0x26c
+ (block $label$20
+ ;; code offset: 0x273
+ (br_if $label$20
+ ;; code offset: 0x272
+ (i32.lt_s
+ ;; code offset: 0x26e
+ (local.get $16)
+ ;; code offset: 0x270
+ (i32.const 3)
+ )
+ )
+ ;; code offset: 0x27a
+ (local.set $1
+ ;; code offset: 0x279
+ (i32.add
+ ;; code offset: 0x275
+ (local.get $16)
+ ;; code offset: 0x277
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x27e
+ (local.set $0
+ ;; code offset: 0x27c
+ (i32.const 1)
+ )
+ ;; code offset: 0x280
+ (loop $label$21
+ ;; code offset: 0x28f
+ (local.set $14
+ ;; code offset: 0x28c
+ (i32.load
+ ;; code offset: 0x28a
+ (local.tee $11
+ ;; code offset: 0x289
+ (i32.add
+ ;; code offset: 0x282
+ (local.get $5)
+ ;; code offset: 0x288
+ (i32.shl
+ ;; code offset: 0x284
+ (local.get $0)
+ ;; code offset: 0x286
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2a0
+ (i32.store
+ ;; code offset: 0x291
+ (local.get $11)
+ ;; code offset: 0x29d
+ (i32.load
+ ;; code offset: 0x29b
+ (local.tee $15
+ ;; code offset: 0x29a
+ (i32.add
+ ;; code offset: 0x293
+ (local.get $5)
+ ;; code offset: 0x299
+ (i32.shl
+ ;; code offset: 0x295
+ (local.get $1)
+ ;; code offset: 0x297
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2a7
+ (i32.store
+ ;; code offset: 0x2a3
+ (local.get $15)
+ ;; code offset: 0x2a5
+ (local.get $14)
+ )
+ ;; code offset: 0x2b9
+ (br_if $label$21
+ ;; code offset: 0x2b8
+ (i32.lt_s
+ ;; code offset: 0x2af
+ (local.tee $0
+ ;; code offset: 0x2ae
+ (i32.add
+ ;; code offset: 0x2aa
+ (local.get $0)
+ ;; code offset: 0x2ac
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x2b6
+ (local.tee $1
+ ;; code offset: 0x2b5
+ (i32.add
+ ;; code offset: 0x2b1
+ (local.get $1)
+ ;; code offset: 0x2b3
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2ca
+ (local.set $1
+ ;; code offset: 0x2c7
+ (i32.load
+ ;; code offset: 0x2c5
+ (local.tee $0
+ ;; code offset: 0x2c4
+ (i32.add
+ ;; code offset: 0x2bd
+ (local.get $5)
+ ;; code offset: 0x2c3
+ (i32.shl
+ ;; code offset: 0x2bf
+ (local.get $16)
+ ;; code offset: 0x2c1
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2d0
+ (i32.store
+ ;; code offset: 0x2cc
+ (local.get $0)
+ ;; code offset: 0x2ce
+ (local.get $16)
+ )
+ ;; code offset: 0x2d8
+ (local.set $0
+ ;; code offset: 0x2d7
+ (i32.add
+ ;; code offset: 0x2d3
+ (local.get $10)
+ ;; code offset: 0x2d5
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x2dc
+ (local.set $16
+ ;; code offset: 0x2da
+ (local.get $1)
+ )
+ ;; code offset: 0x2e0
+ (br_if $label$19
+ ;; code offset: 0x2de
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x2ed
+ (local.set $9
+ ;; code offset: 0x2ec
+ (select
+ ;; code offset: 0x2e3
+ (local.get $9)
+ ;; code offset: 0x2e5
+ (local.get $0)
+ ;; code offset: 0x2eb
+ (i32.gt_s
+ ;; code offset: 0x2e7
+ (local.get $9)
+ ;; code offset: 0x2e9
+ (local.get $10)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2f5
+ (br_if $label$1
+ ;; code offset: 0x2f4
+ (i32.ge_s
+ ;; code offset: 0x2f0
+ (local.get $2)
+ ;; code offset: 0x2f2
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x2f7
+ (loop $label$22
+ ;; code offset: 0x2fb
+ (local.set $1
+ ;; code offset: 0x2f9
+ (i32.const 0)
+ )
+ ;; code offset: 0x2fd
+ (block $label$23
+ ;; code offset: 0x304
+ (br_if $label$23
+ ;; code offset: 0x303
+ (i32.lt_s
+ ;; code offset: 0x2ff
+ (local.get $2)
+ ;; code offset: 0x301
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x306
+ (loop $label$24
+ ;; code offset: 0x320
+ (i32.store
+ ;; code offset: 0x30f
+ (i32.add
+ ;; code offset: 0x308
+ (local.get $4)
+ ;; code offset: 0x30e
+ (i32.shl
+ ;; code offset: 0x30a
+ (local.get $1)
+ ;; code offset: 0x30c
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x31d
+ (i32.load
+ ;; code offset: 0x31c
+ (i32.add
+ ;; code offset: 0x310
+ (local.get $4)
+ ;; code offset: 0x31b
+ (i32.shl
+ ;; code offset: 0x317
+ (local.tee $1
+ ;; code offset: 0x316
+ (i32.add
+ ;; code offset: 0x312
+ (local.get $1)
+ ;; code offset: 0x314
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x319
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x328
+ (br_if $label$24
+ ;; code offset: 0x327
+ (i32.ne
+ ;; code offset: 0x323
+ (local.get $1)
+ ;; code offset: 0x325
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x32d
+ (local.set $1
+ ;; code offset: 0x32b
+ (local.get $2)
+ )
+ )
+ ;; code offset: 0x33a
+ (i32.store
+ ;; code offset: 0x337
+ (i32.add
+ ;; code offset: 0x330
+ (local.get $4)
+ ;; code offset: 0x336
+ (i32.shl
+ ;; code offset: 0x332
+ (local.get $1)
+ ;; code offset: 0x334
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x338
+ (local.get $12)
+ )
+ ;; code offset: 0x351
+ (i32.store
+ ;; code offset: 0x345
+ (local.tee $1
+ ;; code offset: 0x344
+ (i32.add
+ ;; code offset: 0x33d
+ (local.get $6)
+ ;; code offset: 0x343
+ (i32.shl
+ ;; code offset: 0x33f
+ (local.get $2)
+ ;; code offset: 0x341
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x350
+ (i32.add
+ ;; code offset: 0x34c
+ (local.tee $1
+ ;; code offset: 0x349
+ (i32.load
+ ;; code offset: 0x347
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x34e
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x359
+ (br_if $label$15
+ ;; code offset: 0x358
+ (i32.gt_s
+ ;; code offset: 0x354
+ (local.get $1)
+ ;; code offset: 0x356
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x365
+ (br_if $label$1
+ ;; code offset: 0x364
+ (i32.eq
+ ;; code offset: 0x360
+ (local.tee $2
+ ;; code offset: 0x35f
+ (i32.add
+ ;; code offset: 0x35b
+ (local.get $2)
+ ;; code offset: 0x35d
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x362
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x36c
+ (local.set $12
+ ;; code offset: 0x369
+ (i32.load
+ ;; code offset: 0x367
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x36e
+ (br $label$22)
+ )
+ )
+ )
+ ;; code offset: 0x379
+ (call $free
+ ;; code offset: 0x377
+ (local.get $4)
+ )
+ ;; code offset: 0x37d
+ (call $free
+ ;; code offset: 0x37b
+ (local.get $5)
+ )
+ ;; code offset: 0x381
+ (call $free
+ ;; code offset: 0x37f
+ (local.get $6)
+ )
+ ;; code offset: 0x383
+ (local.get $9)
+ )
+ (func $main (; 8 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ ;; code offset: 0x392
+ (global.set $global$0
+ ;; code offset: 0x390
+ (local.tee $2
+ ;; code offset: 0x38f
+ (i32.sub
+ ;; code offset: 0x38b
+ (global.get $global$0)
+ ;; code offset: 0x38d
+ (i32.const 32)
+ )
+ )
+ )
+ ;; code offset: 0x394
+ (block $label$1
+ (block $label$2
+ (block $label$3
+ ;; code offset: 0x39f
+ (br_if $label$3
+ ;; code offset: 0x39e
+ (i32.lt_s
+ ;; code offset: 0x39a
+ (local.get $0)
+ ;; code offset: 0x39c
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x3a3
+ (local.set $3
+ ;; code offset: 0x3a1
+ (i32.const 0)
+ )
+ ;; code offset: 0x3b1
+ (br_if $label$2
+ ;; code offset: 0x3b0
+ (i32.gt_s
+ ;; code offset: 0x3ac
+ (local.tee $4
+ ;; code offset: 0x3aa
+ (call $atoi
+ ;; code offset: 0x3a7
+ (i32.load offset=4
+ ;; code offset: 0x3a5
+ (local.get $1)
+ )
+ )
+ )
+ ;; code offset: 0x3ae
+ (i32.const 0)
+ )
+ )
+ )
+ ;; code offset: 0x3b9
+ (drop
+ ;; code offset: 0x3b7
+ (call $puts
+ ;; code offset: 0x3b4
+ (i32.const 1050)
+ )
+ )
+ ;; code offset: 0x3bc
+ (local.set $5
+ ;; code offset: 0x3ba
+ (i32.const 1)
+ )
+ ;; code offset: 0x3be
+ (br $label$1)
+ )
+ ;; code offset: 0x3c1
+ (block $label$4
+ ;; code offset: 0x3c8
+ (br_if $label$4
+ ;; code offset: 0x3c7
+ (i32.eq
+ ;; code offset: 0x3c3
+ (local.get $4)
+ ;; code offset: 0x3c5
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x3cf
+ (local.set $6
+ ;; code offset: 0x3ce
+ (i32.add
+ ;; code offset: 0x3ca
+ (local.get $4)
+ ;; code offset: 0x3cc
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x3d3
+ (local.set $1
+ ;; code offset: 0x3d1
+ (i32.const 0)
+ )
+ ;; code offset: 0x3d7
+ (local.set $0
+ ;; code offset: 0x3d5
+ (i32.const 0)
+ )
+ ;; code offset: 0x3d9
+ (loop $label$5
+ ;; code offset: 0x3e3
+ (i32.store offset=8
+ ;; code offset: 0x3df
+ (local.tee $3
+ ;; code offset: 0x3dd
+ (call $malloc
+ ;; code offset: 0x3db
+ (i32.const 12)
+ )
+ )
+ ;; code offset: 0x3e1
+ (local.get $1)
+ )
+ ;; code offset: 0x3ea
+ (i32.store offset=4
+ ;; code offset: 0x3e6
+ (local.get $3)
+ ;; code offset: 0x3e8
+ (local.get $4)
+ )
+ ;; code offset: 0x3f1
+ (i32.store
+ ;; code offset: 0x3ed
+ (local.get $3)
+ ;; code offset: 0x3ef
+ (local.get $0)
+ )
+ ;; code offset: 0x3f6
+ (local.set $1
+ ;; code offset: 0x3f4
+ (local.get $3)
+ )
+ ;; code offset: 0x402
+ (br_if $label$5
+ ;; code offset: 0x401
+ (i32.ne
+ ;; code offset: 0x3fd
+ (local.tee $0
+ ;; code offset: 0x3fc
+ (i32.add
+ ;; code offset: 0x3f8
+ (local.get $0)
+ ;; code offset: 0x3fa
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x3ff
+ (local.get $6)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x408
+ (local.set $0
+ ;; code offset: 0x406
+ (i32.const 0)
+ )
+ ;; code offset: 0x413
+ (local.set $1
+ ;; code offset: 0x411
+ (call $malloc
+ ;; code offset: 0x40f
+ (local.tee $6
+ ;; code offset: 0x40e
+ (i32.shl
+ ;; code offset: 0x40a
+ (local.get $4)
+ ;; code offset: 0x40c
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x419
+ (local.set $5
+ ;; code offset: 0x417
+ (call $malloc
+ ;; code offset: 0x415
+ (local.get $6)
+ )
+ )
+ ;; code offset: 0x41b
+ (block $label$6
+ (block $label$7
+ (block $label$8
+ (block $label$9
+ ;; code offset: 0x428
+ (br_if $label$9
+ ;; code offset: 0x427
+ (i32.le_s
+ ;; code offset: 0x423
+ (local.get $4)
+ ;; code offset: 0x425
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x42a
+ (loop $label$10
+ ;; code offset: 0x436
+ (i32.store
+ ;; code offset: 0x433
+ (i32.add
+ ;; code offset: 0x42c
+ (local.get $1)
+ ;; code offset: 0x432
+ (i32.shl
+ ;; code offset: 0x42e
+ (local.get $0)
+ ;; code offset: 0x430
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x434
+ (local.get $0)
+ )
+ ;; code offset: 0x443
+ (br_if $label$10
+ ;; code offset: 0x442
+ (i32.ne
+ ;; code offset: 0x43e
+ (local.tee $0
+ ;; code offset: 0x43d
+ (i32.add
+ ;; code offset: 0x439
+ (local.get $0)
+ ;; code offset: 0x43b
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x440
+ (local.get $4)
+ )
+ )
+ )
+ ;; code offset: 0x448
+ (local.set $7
+ ;; code offset: 0x446
+ (i32.const 30)
+ )
+ ;; code offset: 0x44c
+ (local.set $6
+ ;; code offset: 0x44a
+ (local.get $4)
+ )
+ ;; code offset: 0x44e
+ (br $label$8)
+ )
+ ;; code offset: 0x453
+ (local.set $7
+ ;; code offset: 0x451
+ (i32.const 30)
+ )
+ ;; code offset: 0x457
+ (local.set $6
+ ;; code offset: 0x455
+ (local.get $4)
+ )
+ ;; code offset: 0x459
+ (br $label$7)
+ )
+ ;; code offset: 0x45c
+ (loop $label$11
+ ;; code offset: 0x460
+ (local.set $0
+ ;; code offset: 0x45e
+ (i32.const 0)
+ )
+ ;; code offset: 0x462
+ (loop $label$12
+ ;; code offset: 0x474
+ (i32.store offset=16
+ ;; code offset: 0x464
+ (local.get $2)
+ ;; code offset: 0x473
+ (i32.add
+ ;; code offset: 0x46e
+ (i32.load
+ ;; code offset: 0x46d
+ (i32.add
+ ;; code offset: 0x466
+ (local.get $1)
+ ;; code offset: 0x46c
+ (i32.shl
+ ;; code offset: 0x468
+ (local.get $0)
+ ;; code offset: 0x46a
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x471
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x481
+ (drop
+ ;; code offset: 0x47f
+ (call $iprintf
+ ;; code offset: 0x477
+ (i32.const 1047)
+ ;; code offset: 0x47e
+ (i32.add
+ ;; code offset: 0x47a
+ (local.get $2)
+ ;; code offset: 0x47c
+ (i32.const 16)
+ )
+ )
+ )
+ ;; code offset: 0x48c
+ (br_if $label$12
+ ;; code offset: 0x48b
+ (i32.ne
+ ;; code offset: 0x487
+ (local.tee $0
+ ;; code offset: 0x486
+ (i32.add
+ ;; code offset: 0x482
+ (local.get $0)
+ ;; code offset: 0x484
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x489
+ (local.get $4)
+ )
+ )
+ )
+ ;; code offset: 0x493
+ (drop
+ ;; code offset: 0x491
+ (call $putchar
+ ;; code offset: 0x48f
+ (i32.const 10)
+ )
+ )
+ ;; code offset: 0x494
+ (block $label$13
+ ;; code offset: 0x49b
+ (br_if $label$13
+ ;; code offset: 0x49a
+ (i32.le_s
+ ;; code offset: 0x496
+ (local.get $6)
+ ;; code offset: 0x498
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x49d
+ (loop $label$14
+ ;; code offset: 0x4ae
+ (i32.store
+ ;; code offset: 0x4ab
+ (i32.add
+ ;; code offset: 0x49f
+ (local.get $5)
+ ;; code offset: 0x4aa
+ (i32.shl
+ ;; code offset: 0x4a6
+ (local.tee $0
+ ;; code offset: 0x4a5
+ (i32.add
+ ;; code offset: 0x4a1
+ (local.get $6)
+ ;; code offset: 0x4a3
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x4a8
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x4ac
+ (local.get $6)
+ )
+ ;; code offset: 0x4b6
+ (local.set $8
+ ;; code offset: 0x4b5
+ (i32.gt_s
+ ;; code offset: 0x4b1
+ (local.get $6)
+ ;; code offset: 0x4b3
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x4ba
+ (local.set $6
+ ;; code offset: 0x4b8
+ (local.get $0)
+ )
+ ;; code offset: 0x4be
+ (br_if $label$14
+ ;; code offset: 0x4bc
+ (local.get $8)
+ )
+ )
+ )
+ ;; code offset: 0x4c7
+ (br_if $label$6
+ ;; code offset: 0x4c6
+ (i32.eq
+ ;; code offset: 0x4c2
+ (local.get $6)
+ ;; code offset: 0x4c4
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x4ce
+ (local.set $7
+ ;; code offset: 0x4cd
+ (i32.add
+ ;; code offset: 0x4c9
+ (local.get $7)
+ ;; code offset: 0x4cb
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x4d0
+ (loop $label$15
+ ;; code offset: 0x4d4
+ (local.set $0
+ ;; code offset: 0x4d2
+ (i32.const 0)
+ )
+ ;; code offset: 0x4db
+ (local.set $8
+ ;; code offset: 0x4d8
+ (i32.load
+ ;; code offset: 0x4d6
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x4dd
+ (block $label$16
+ ;; code offset: 0x4e4
+ (br_if $label$16
+ ;; code offset: 0x4e3
+ (i32.le_s
+ ;; code offset: 0x4df
+ (local.get $6)
+ ;; code offset: 0x4e1
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x4e6
+ (loop $label$17
+ ;; code offset: 0x500
+ (i32.store
+ ;; code offset: 0x4ef
+ (i32.add
+ ;; code offset: 0x4e8
+ (local.get $1)
+ ;; code offset: 0x4ee
+ (i32.shl
+ ;; code offset: 0x4ea
+ (local.get $0)
+ ;; code offset: 0x4ec
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x4fd
+ (i32.load
+ ;; code offset: 0x4fc
+ (i32.add
+ ;; code offset: 0x4f0
+ (local.get $1)
+ ;; code offset: 0x4fb
+ (i32.shl
+ ;; code offset: 0x4f7
+ (local.tee $0
+ ;; code offset: 0x4f6
+ (i32.add
+ ;; code offset: 0x4f2
+ (local.get $0)
+ ;; code offset: 0x4f4
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x4f9
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x508
+ (br_if $label$17
+ ;; code offset: 0x507
+ (i32.ne
+ ;; code offset: 0x503
+ (local.get $0)
+ ;; code offset: 0x505
+ (local.get $6)
+ )
+ )
+ )
+ ;; code offset: 0x50d
+ (local.set $0
+ ;; code offset: 0x50b
+ (local.get $6)
+ )
+ )
+ ;; code offset: 0x51a
+ (i32.store
+ ;; code offset: 0x517
+ (i32.add
+ ;; code offset: 0x510
+ (local.get $1)
+ ;; code offset: 0x516
+ (i32.shl
+ ;; code offset: 0x512
+ (local.get $0)
+ ;; code offset: 0x514
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x518
+ (local.get $8)
+ )
+ ;; code offset: 0x531
+ (i32.store
+ ;; code offset: 0x525
+ (local.tee $0
+ ;; code offset: 0x524
+ (i32.add
+ ;; code offset: 0x51d
+ (local.get $5)
+ ;; code offset: 0x523
+ (i32.shl
+ ;; code offset: 0x51f
+ (local.get $6)
+ ;; code offset: 0x521
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x530
+ (i32.add
+ ;; code offset: 0x52c
+ (local.tee $0
+ ;; code offset: 0x529
+ (i32.load
+ ;; code offset: 0x527
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x52e
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x534
+ (block $label$18
+ ;; code offset: 0x53b
+ (br_if $label$18
+ ;; code offset: 0x53a
+ (i32.gt_s
+ ;; code offset: 0x536
+ (local.get $0)
+ ;; code offset: 0x538
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x547
+ (br_if $label$15
+ ;; code offset: 0x546
+ (i32.ne
+ ;; code offset: 0x542
+ (local.tee $6
+ ;; code offset: 0x541
+ (i32.add
+ ;; code offset: 0x53d
+ (local.get $6)
+ ;; code offset: 0x53f
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x544
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x549
+ (br $label$6)
+ )
+ )
+ ;; code offset: 0x550
+ (br_if $label$6
+ ;; code offset: 0x54f
+ (i32.eqz
+ ;; code offset: 0x54d
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x552
+ (br $label$11)
+ )
+ )
+ ;; code offset: 0x558
+ (loop $label$19
+ ;; code offset: 0x55e
+ (drop
+ ;; code offset: 0x55c
+ (call $putchar
+ ;; code offset: 0x55a
+ (i32.const 10)
+ )
+ )
+ ;; code offset: 0x55f
+ (block $label$20
+ ;; code offset: 0x566
+ (br_if $label$20
+ ;; code offset: 0x565
+ (i32.le_s
+ ;; code offset: 0x561
+ (local.get $6)
+ ;; code offset: 0x563
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x568
+ (loop $label$21
+ ;; code offset: 0x579
+ (i32.store
+ ;; code offset: 0x576
+ (i32.add
+ ;; code offset: 0x56a
+ (local.get $5)
+ ;; code offset: 0x575
+ (i32.shl
+ ;; code offset: 0x571
+ (local.tee $0
+ ;; code offset: 0x570
+ (i32.add
+ ;; code offset: 0x56c
+ (local.get $6)
+ ;; code offset: 0x56e
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x573
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x577
+ (local.get $6)
+ )
+ ;; code offset: 0x581
+ (local.set $8
+ ;; code offset: 0x580
+ (i32.gt_s
+ ;; code offset: 0x57c
+ (local.get $6)
+ ;; code offset: 0x57e
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x585
+ (local.set $6
+ ;; code offset: 0x583
+ (local.get $0)
+ )
+ ;; code offset: 0x589
+ (br_if $label$21
+ ;; code offset: 0x587
+ (local.get $8)
+ )
+ )
+ )
+ ;; code offset: 0x592
+ (br_if $label$6
+ ;; code offset: 0x591
+ (i32.eq
+ ;; code offset: 0x58d
+ (local.get $6)
+ ;; code offset: 0x58f
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x599
+ (local.set $7
+ ;; code offset: 0x598
+ (i32.add
+ ;; code offset: 0x594
+ (local.get $7)
+ ;; code offset: 0x596
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x59b
+ (loop $label$22
+ ;; code offset: 0x5a2
+ (local.set $8
+ ;; code offset: 0x59f
+ (i32.load
+ ;; code offset: 0x59d
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x5a6
+ (local.set $0
+ ;; code offset: 0x5a4
+ (i32.const 0)
+ )
+ ;; code offset: 0x5a8
+ (block $label$23
+ ;; code offset: 0x5af
+ (br_if $label$23
+ ;; code offset: 0x5ae
+ (i32.lt_s
+ ;; code offset: 0x5aa
+ (local.get $6)
+ ;; code offset: 0x5ac
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x5b1
+ (loop $label$24
+ ;; code offset: 0x5cb
+ (i32.store
+ ;; code offset: 0x5ba
+ (i32.add
+ ;; code offset: 0x5b3
+ (local.get $1)
+ ;; code offset: 0x5b9
+ (i32.shl
+ ;; code offset: 0x5b5
+ (local.get $0)
+ ;; code offset: 0x5b7
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x5c8
+ (i32.load
+ ;; code offset: 0x5c7
+ (i32.add
+ ;; code offset: 0x5bb
+ (local.get $1)
+ ;; code offset: 0x5c6
+ (i32.shl
+ ;; code offset: 0x5c2
+ (local.tee $0
+ ;; code offset: 0x5c1
+ (i32.add
+ ;; code offset: 0x5bd
+ (local.get $0)
+ ;; code offset: 0x5bf
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x5c4
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x5d3
+ (br_if $label$24
+ ;; code offset: 0x5d2
+ (i32.ne
+ ;; code offset: 0x5ce
+ (local.get $0)
+ ;; code offset: 0x5d0
+ (local.get $6)
+ )
+ )
+ )
+ ;; code offset: 0x5d8
+ (local.set $0
+ ;; code offset: 0x5d6
+ (local.get $6)
+ )
+ )
+ ;; code offset: 0x5e5
+ (i32.store
+ ;; code offset: 0x5e2
+ (i32.add
+ ;; code offset: 0x5db
+ (local.get $1)
+ ;; code offset: 0x5e1
+ (i32.shl
+ ;; code offset: 0x5dd
+ (local.get $0)
+ ;; code offset: 0x5df
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x5e3
+ (local.get $8)
+ )
+ ;; code offset: 0x5fc
+ (i32.store
+ ;; code offset: 0x5f0
+ (local.tee $0
+ ;; code offset: 0x5ef
+ (i32.add
+ ;; code offset: 0x5e8
+ (local.get $5)
+ ;; code offset: 0x5ee
+ (i32.shl
+ ;; code offset: 0x5ea
+ (local.get $6)
+ ;; code offset: 0x5ec
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x5fb
+ (i32.add
+ ;; code offset: 0x5f7
+ (local.tee $0
+ ;; code offset: 0x5f4
+ (i32.load
+ ;; code offset: 0x5f2
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x5f9
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x5ff
+ (block $label$25
+ ;; code offset: 0x606
+ (br_if $label$25
+ ;; code offset: 0x605
+ (i32.gt_s
+ ;; code offset: 0x601
+ (local.get $0)
+ ;; code offset: 0x603
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x612
+ (br_if $label$22
+ ;; code offset: 0x611
+ (i32.ne
+ ;; code offset: 0x60d
+ (local.tee $6
+ ;; code offset: 0x60c
+ (i32.add
+ ;; code offset: 0x608
+ (local.get $6)
+ ;; code offset: 0x60a
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x60f
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x614
+ (br $label$6)
+ )
+ )
+ ;; code offset: 0x61a
+ (br_if $label$19
+ ;; code offset: 0x618
+ (local.get $7)
+ )
+ )
+ )
+ ;; code offset: 0x620
+ (call $free
+ ;; code offset: 0x61e
+ (local.get $1)
+ )
+ ;; code offset: 0x624
+ (call $free
+ ;; code offset: 0x622
+ (local.get $5)
+ )
+ ;; code offset: 0x628
+ (local.set $5
+ ;; code offset: 0x626
+ (i32.const 0)
+ )
+ ;; code offset: 0x62c
+ (local.set $0
+ ;; code offset: 0x62a
+ (i32.const 0)
+ )
+ ;; code offset: 0x62e
+ (block $label$26
+ ;; code offset: 0x633
+ (br_if $label$26
+ ;; code offset: 0x632
+ (i32.eqz
+ ;; code offset: 0x630
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x637
+ (local.set $1
+ ;; code offset: 0x635
+ (local.get $3)
+ )
+ ;; code offset: 0x63b
+ (local.set $0
+ ;; code offset: 0x639
+ (i32.const 0)
+ )
+ ;; code offset: 0x63d
+ (loop $label$27
+ ;; code offset: 0x643
+ (local.set $6
+ ;; code offset: 0x641
+ (call $fannkuch_worker\28void*\29
+ ;; code offset: 0x63f
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x64a
+ (local.set $3
+ ;; code offset: 0x647
+ (i32.load offset=8
+ ;; code offset: 0x645
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x64e
+ (call $free
+ ;; code offset: 0x64c
+ (local.get $1)
+ )
+ ;; code offset: 0x65a
+ (local.set $0
+ ;; code offset: 0x659
+ (select
+ ;; code offset: 0x650
+ (local.get $6)
+ ;; code offset: 0x652
+ (local.get $0)
+ ;; code offset: 0x658
+ (i32.lt_s
+ ;; code offset: 0x654
+ (local.get $0)
+ ;; code offset: 0x656
+ (local.get $6)
+ )
+ )
+ )
+ ;; code offset: 0x65e
+ (local.set $1
+ ;; code offset: 0x65c
+ (local.get $3)
+ )
+ ;; code offset: 0x662
+ (br_if $label$27
+ ;; code offset: 0x660
+ (local.get $3)
+ )
+ )
+ )
+ ;; code offset: 0x66a
+ (i32.store offset=4
+ ;; code offset: 0x666
+ (local.get $2)
+ ;; code offset: 0x668
+ (local.get $0)
+ )
+ ;; code offset: 0x671
+ (i32.store
+ ;; code offset: 0x66d
+ (local.get $2)
+ ;; code offset: 0x66f
+ (local.get $4)
+ )
+ ;; code offset: 0x67b
+ (drop
+ ;; code offset: 0x679
+ (call $iprintf
+ ;; code offset: 0x674
+ (i32.const 1024)
+ ;; code offset: 0x677
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x682
+ (global.set $global$0
+ ;; code offset: 0x681
+ (i32.add
+ ;; code offset: 0x67d
+ (local.get $2)
+ ;; code offset: 0x67f
+ (i32.const 32)
+ )
+ )
+ ;; code offset: 0x684
+ (local.get $5)
+ )
+ ;; custom section ".debug_info", size 812
+ ;; custom section ".debug_loc", size 345
+ ;; custom section ".debug_ranges", size 88
+ ;; custom section ".debug_abbrev", size 352
+ ;; custom section ".debug_line", size 4227
+ ;; custom section ".debug_str", size 475
+ ;; custom section "producers", size 180
+)
diff --git a/test/passes/fannkuch3.passes b/test/passes/fannkuch3.passes
new file mode 100644
index 000000000..edbfb02ae
--- /dev/null
+++ b/test/passes/fannkuch3.passes
@@ -0,0 +1 @@
+dwarfdump_roundtrip_dwarfdump_g
diff --git a/test/passes/fannkuch3.wasm b/test/passes/fannkuch3.wasm
new file mode 100644
index 000000000..9d450e9ee
--- /dev/null
+++ b/test/passes/fannkuch3.wasm
Binary files differ
diff --git a/test/passes/fib2.bin.txt b/test/passes/fib2.bin.txt
new file mode 100644
index 000000000..40730ad75
--- /dev/null
+++ b/test/passes/fib2.bin.txt
@@ -0,0 +1,360 @@
+DWARF debug info
+================
+
+Contains section .debug_info (133 bytes)
+Contains section .debug_loc (63 bytes)
+Contains section .debug_abbrev (96 bytes)
+Contains section .debug_line (80 bytes)
+Contains section .debug_str (217 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_prototyped DW_FORM_flag_present
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[5] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000081 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x00000085)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C99)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "fib2.c")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x0000009c] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000002)
+ DW_AT_high_pc [DW_FORM_data4] (0x00000035)
+
+.debug_loc contents:
+0x00000000:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+0x00000015:
+ [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value
+
+0x0000002a:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x0000004c
+ version: 4
+ prologue_length: 0x0000001e
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+file_names[ 1]:
+ name: "fib2.c"
+ dir_index: 0
+ mod_time: 0x00000000
+ length: 0x00000000
+0x00000028: 00 DW_LNE_set_address (0x0000000000000002)
+0x0000002f: 13 address += 0, line += 1
+ 0x0000000000000002 2 0 1 0 0 is_stmt
+
+0x00000030: 05 DW_LNS_set_column (17)
+0x00000032: 0a DW_LNS_set_prologue_end
+0x00000033: 92 address += 9, line += 2
+ 0x000000000000000b 4 17 1 0 0 is_stmt prologue_end
+
+0x00000034: 05 DW_LNS_set_column (3)
+0x00000036: 06 DW_LNS_negate_stmt
+0x00000037: 58 address += 5, line += 0
+ 0x0000000000000010 4 3 1 0 0
+
+0x00000038: 2a address += 2, line += -4
+ 0x0000000000000012 0 3 1 0 0
+
+0x00000039: 05 DW_LNS_set_column (7)
+0x0000003b: 06 DW_LNS_negate_stmt
+0x0000003c: c1 address += 12, line += 7
+ 0x000000000000001e 7 7 1 0 0 is_stmt
+
+0x0000003d: 06 DW_LNS_negate_stmt
+0x0000003e: 03 DW_LNS_advance_line (0)
+0x00000040: 74 address += 7, line += 0
+ 0x0000000000000025 0 7 1 0 0
+
+0x00000041: 05 DW_LNS_set_column (17)
+0x00000043: 06 DW_LNS_negate_stmt
+0x00000044: 4e address += 4, line += 4
+ 0x0000000000000029 4 17 1 0 0 is_stmt
+
+0x00000045: 05 DW_LNS_set_column (3)
+0x00000047: 06 DW_LNS_negate_stmt
+0x00000048: 58 address += 5, line += 0
+ 0x000000000000002e 4 3 1 0 0
+
+0x00000049: 06 DW_LNS_negate_stmt
+0x0000004a: 6b address += 6, line += 5
+ 0x0000000000000034 9 3 1 0 0 is_stmt
+
+0x0000004b: 02 DW_LNS_advance_pc (3)
+0x0000004d: 00 DW_LNE_end_sequence
+ 0x0000000000000037 9 3 1 0 0 is_stmt end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)"
+0x00000095: "fib2.c"
+0x0000009c: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000c7: "fib"
+0x000000cb: "int"
+0x000000cf: "n"
+0x000000d1: "a"
+0x000000d3: "b"
+0x000000d5: "i"
+0x000000d7: "t"
+DWARF debug info
+================
+
+Contains section .debug_info (133 bytes)
+Contains section .debug_loc (63 bytes)
+Contains section .debug_abbrev (95 bytes)
+Contains section .debug_line (71 bytes)
+Contains section .debug_str (217 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_prototyped DW_FORM_flag_present
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[5] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000081 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x00000085)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C99)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "fib2.c")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x0000009c] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000002)
+ DW_AT_high_pc [DW_FORM_data4] (0x00000035)
+
+.debug_loc contents:
+0x00000000:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+0x00000015:
+ [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value
+
+0x0000002a:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x00000043
+ version: 4
+ prologue_length: 0x0000001e
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+file_names[ 1]:
+ name: "fib2.c"
+ dir_index: 0
+ mod_time: 0x00000000
+ length: 0x00000000
+0x00000028: 00 DW_LNE_set_address (0x000000000000000b)
+0x0000002f: 03 DW_LNS_advance_line (4)
+0x00000031: 05 DW_LNS_set_column (17)
+0x00000033: 0a DW_LNS_set_prologue_end
+0x00000034: 00 DW_LNE_end_sequence
+ 0x000000000000000b 4 17 1 0 0 is_stmt end_sequence
+
+0x00000037: 00 DW_LNE_set_address (0x0000000000000010)
+0x0000003e: 03 DW_LNS_advance_line (4)
+0x00000040: 05 DW_LNS_set_column (3)
+0x00000042: 06 DW_LNS_negate_stmt
+0x00000043: 0a DW_LNS_set_prologue_end
+0x00000044: 00 DW_LNE_end_sequence
+ 0x0000000000000010 4 3 1 0 0 end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)"
+0x00000095: "fib2.c"
+0x0000009c: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000c7: "fib"
+0x000000cb: "int"
+0x000000cf: "n"
+0x000000d1: "a"
+0x000000d3: "b"
+0x000000d5: "i"
+0x000000d7: "t"
+(module
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (memory $ 2)
+ (export "memory" (memory $0))
+ (export "fib" (func $0))
+ (func $0 (; 0 ;) (param $0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ ;; code offset: 0x7
+ (local.set $1
+ ;; code offset: 0x5
+ (i32.const 1)
+ )
+ ;; code offset: 0xe
+ (if
+ ;; code offset: 0xd
+ (i32.ge_s
+ ;; code offset: 0x9
+ (local.get $0)
+ ;; code offset: 0xb
+ (i32.const 1)
+ )
+ ;; code offset: 0x10
+ (loop $label$2
+ ;; code offset: 0x19
+ (local.set $1
+ ;; code offset: 0x18
+ (i32.add
+ ;; code offset: 0x12
+ (local.get $2)
+ ;; code offset: 0x16
+ (local.tee $2
+ ;; code offset: 0x14
+ (local.get $1)
+ )
+ )
+ )
+ ;; code offset: 0x22
+ (br_if $label$2
+ ;; code offset: 0x20
+ (local.tee $0
+ ;; code offset: 0x1f
+ (i32.add
+ ;; code offset: 0x1b
+ (local.get $0)
+ ;; code offset: 0x1d
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x26
+ (local.get $1)
+ )
+ ;; custom section ".debug_info", size 133
+ ;; custom section ".debug_loc", size 63
+ ;; custom section ".debug_abbrev", size 95
+ ;; custom section ".debug_line", size 71
+ ;; custom section ".debug_str", size 217
+ ;; custom section "producers", size 172
+)
diff --git a/test/passes/fib2.passes b/test/passes/fib2.passes
new file mode 100644
index 000000000..edbfb02ae
--- /dev/null
+++ b/test/passes/fib2.passes
@@ -0,0 +1 @@
+dwarfdump_roundtrip_dwarfdump_g
diff --git a/test/passes/fib2.wasm b/test/passes/fib2.wasm
new file mode 100644
index 000000000..36fd0eed2
--- /dev/null
+++ b/test/passes/fib2.wasm
Binary files differ
diff --git a/test/passes/print_g.bin.txt b/test/passes/print_g.bin.txt
index f3a91ae98..f41030743 100644
--- a/test/passes/print_g.bin.txt
+++ b/test/passes/print_g.bin.txt
@@ -19,107 +19,107 @@
(nop)
)
(func $main (; 1 ;) (param $0 i32) (param $1 i32) (result i32)
- ;; code offset: 0x16
+ ;; code offset: 0x10
(if
- ;; code offset: 0x15
+ ;; code offset: 0xf
(i32.ne
- ;; code offset: 0x12
+ ;; code offset: 0xc
(i32.rem_s
;; code offset: 0x7
(local.get $0)
;; code offset: 0x9
(i32.const 120)
)
- ;; code offset: 0x13
+ ;; code offset: 0xd
(i32.const 55)
)
- ;; code offset: 0x18
+ ;; code offset: 0x12
(loop $label$2
- ;; code offset: 0x46
+ ;; code offset: 0x2e
(br_if $label$2
- ;; code offset: 0x45
+ ;; code offset: 0x2d
(i32.ne
- ;; code offset: 0x42
+ ;; code offset: 0x2a
(i32.rem_s
- ;; code offset: 0x37
+ ;; code offset: 0x25
(local.tee $0
- ;; code offset: 0x36
+ ;; code offset: 0x24
(i32.add
- ;; code offset: 0x33
+ ;; code offset: 0x21
(i32.add
- ;; code offset: 0x27
+ ;; code offset: 0x1b
(i32.mul
- ;; code offset: 0x24
+ ;; code offset: 0x18
(i32.mul
- ;; code offset: 0x20
+ ;; code offset: 0x14
(local.get $0)
- ;; code offset: 0x22
+ ;; code offset: 0x16
(local.get $0)
)
- ;; code offset: 0x25
+ ;; code offset: 0x19
(local.get $0)
)
- ;; code offset: 0x32
+ ;; code offset: 0x20
(i32.div_s
- ;; code offset: 0x28
+ ;; code offset: 0x1c
(local.get $0)
- ;; code offset: 0x30
+ ;; code offset: 0x1e
(i32.const -2)
)
)
- ;; code offset: 0x34
+ ;; code offset: 0x22
(i32.const 13)
)
)
- ;; code offset: 0x39
+ ;; code offset: 0x27
(i32.const 120)
)
- ;; code offset: 0x43
+ ;; code offset: 0x2b
(i32.const 55)
)
)
)
)
- ;; code offset: 0x50
+ ;; code offset: 0x32
(local.get $0)
)
(func $stackSave (; 2 ;) (result i32)
- ;; code offset: 0x55
+ ;; code offset: 0x37
(global.get $global$0)
)
(func $stackAlloc (; 3 ;) (param $0 i32) (result i32)
- ;; code offset: 0x70
+ ;; code offset: 0x46
(global.set $global$0
- ;; code offset: 0x68
+ ;; code offset: 0x44
(local.tee $0
- ;; code offset: 0x67
+ ;; code offset: 0x43
(i32.and
- ;; code offset: 0x64
+ ;; code offset: 0x40
(i32.sub
- ;; code offset: 0x60
+ ;; code offset: 0x3c
(global.get $global$0)
- ;; code offset: 0x62
+ ;; code offset: 0x3e
(local.get $0)
)
- ;; code offset: 0x65
+ ;; code offset: 0x41
(i32.const -16)
)
)
)
- ;; code offset: 0x72
+ ;; code offset: 0x48
(local.get $0)
)
(func $stackRestore (; 4 ;) (param $0 i32)
- ;; code offset: 0x79
+ ;; code offset: 0x4f
(global.set $global$0
- ;; code offset: 0x77
+ ;; code offset: 0x4d
(local.get $0)
)
)
(func $__growWasmMemory (; 5 ;) (param $0 i32) (result i32)
- ;; code offset: 0x86
+ ;; code offset: 0x56
(memory.grow
- ;; code offset: 0x84
+ ;; code offset: 0x54
(local.get $0)
)
)
@@ -149,107 +149,107 @@
(nop)
)
(func $main (; 1 ;) (param $0 i32) (param $1 i32) (result i32)
- ;; code offset: 0x16
+ ;; code offset: 0x10
(if
- ;; code offset: 0x15
+ ;; code offset: 0xf
(i32.ne
- ;; code offset: 0x12
+ ;; code offset: 0xc
(i32.rem_s
;; code offset: 0x7
(local.get $0)
;; code offset: 0x9
(i32.const 120)
)
- ;; code offset: 0x13
+ ;; code offset: 0xd
(i32.const 55)
)
- ;; code offset: 0x18
+ ;; code offset: 0x12
(loop $label$2
- ;; code offset: 0x46
+ ;; code offset: 0x2e
(br_if $label$2
- ;; code offset: 0x45
+ ;; code offset: 0x2d
(i32.ne
- ;; code offset: 0x42
+ ;; code offset: 0x2a
(i32.rem_s
- ;; code offset: 0x37
+ ;; code offset: 0x25
(local.tee $0
- ;; code offset: 0x36
+ ;; code offset: 0x24
(i32.add
- ;; code offset: 0x33
+ ;; code offset: 0x21
(i32.add
- ;; code offset: 0x27
+ ;; code offset: 0x1b
(i32.mul
- ;; code offset: 0x24
+ ;; code offset: 0x18
(i32.mul
- ;; code offset: 0x20
+ ;; code offset: 0x14
(local.get $0)
- ;; code offset: 0x22
+ ;; code offset: 0x16
(local.get $0)
)
- ;; code offset: 0x25
+ ;; code offset: 0x19
(local.get $0)
)
- ;; code offset: 0x32
+ ;; code offset: 0x20
(i32.div_s
- ;; code offset: 0x28
+ ;; code offset: 0x1c
(local.get $0)
- ;; code offset: 0x30
+ ;; code offset: 0x1e
(i32.const -2)
)
)
- ;; code offset: 0x34
+ ;; code offset: 0x22
(i32.const 13)
)
)
- ;; code offset: 0x39
+ ;; code offset: 0x27
(i32.const 120)
)
- ;; code offset: 0x43
+ ;; code offset: 0x2b
(i32.const 55)
)
)
)
)
- ;; code offset: 0x50
+ ;; code offset: 0x32
(local.get $0)
)
(func $stackSave (; 2 ;) (result i32)
- ;; code offset: 0x55
+ ;; code offset: 0x37
(global.get $global$0)
)
(func $stackAlloc (; 3 ;) (param $0 i32) (result i32)
- ;; code offset: 0x70
+ ;; code offset: 0x46
(global.set $global$0
- ;; code offset: 0x68
+ ;; code offset: 0x44
(local.tee $0
- ;; code offset: 0x67
+ ;; code offset: 0x43
(i32.and
- ;; code offset: 0x64
+ ;; code offset: 0x40
(i32.sub
- ;; code offset: 0x60
+ ;; code offset: 0x3c
(global.get $global$0)
- ;; code offset: 0x62
+ ;; code offset: 0x3e
(local.get $0)
)
- ;; code offset: 0x65
+ ;; code offset: 0x41
(i32.const -16)
)
)
)
- ;; code offset: 0x72
+ ;; code offset: 0x48
(local.get $0)
)
(func $stackRestore (; 4 ;) (param $0 i32)
- ;; code offset: 0x79
+ ;; code offset: 0x4f
(global.set $global$0
- ;; code offset: 0x77
+ ;; code offset: 0x4d
(local.get $0)
)
)
(func $__growWasmMemory (; 5 ;) (param $0 i32) (result i32)
- ;; code offset: 0x86
+ ;; code offset: 0x56
(memory.grow
- ;; code offset: 0x84
+ ;; code offset: 0x54
(local.get $0)
)
)
diff --git a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h
index 8ab3de4f1..943868b36 100644
--- a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h
+++ b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h
@@ -139,7 +139,7 @@ struct LineTable {
uint8_t MinInstLength;
uint8_t MaxOpsPerInst;
uint8_t DefaultIsStmt;
- uint8_t LineBase;
+ int8_t LineBase; // XXX BINARYEN
uint8_t LineRange;
uint8_t OpcodeBase;
std::vector<uint8_t> StandardOpcodeLengths;