summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ObjectYAML/WasmEmitter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/ObjectYAML/WasmEmitter.cpp')
-rw-r--r--llvm/lib/ObjectYAML/WasmEmitter.cpp295
1 files changed, 132 insertions, 163 deletions
diff --git a/llvm/lib/ObjectYAML/WasmEmitter.cpp b/llvm/lib/ObjectYAML/WasmEmitter.cpp
index 28d469ccb97..e374764bf13 100644
--- a/llvm/lib/ObjectYAML/WasmEmitter.cpp
+++ b/llvm/lib/ObjectYAML/WasmEmitter.cpp
@@ -25,39 +25,46 @@ namespace {
/// See docs/yaml2obj for the yaml scheema.
class WasmWriter {
public:
- WasmWriter(WasmYAML::Object &Obj) : Obj(Obj) {}
+ WasmWriter(WasmYAML::Object &Obj, yaml::ErrorHandler EH)
+ : Obj(Obj), ErrHandler(EH) {}
bool writeWasm(raw_ostream &OS);
private:
- int writeRelocSection(raw_ostream &OS, WasmYAML::Section &Sec,
- uint32_t SectionIndex);
-
- int writeSectionContent(raw_ostream &OS, WasmYAML::CustomSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::TypeSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::ImportSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::FunctionSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::TableSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::MemorySection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::GlobalSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::EventSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::ExportSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::StartSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::ElemSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::CodeSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::DataSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::DataCountSection &Section);
+ void writeRelocSection(raw_ostream &OS, WasmYAML::Section &Sec,
+ uint32_t SectionIndex);
+
+ void writeInitExpr(raw_ostream &OS, const wasm::WasmInitExpr &InitExpr);
+
+ void writeSectionContent(raw_ostream &OS, WasmYAML::CustomSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::TypeSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::ImportSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::FunctionSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::TableSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::MemorySection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::GlobalSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::EventSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::ExportSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::StartSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::ElemSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::CodeSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::DataSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::DataCountSection &Section);
// Custom section types
- int writeSectionContent(raw_ostream &OS, WasmYAML::DylinkSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::NameSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::LinkingSection &Section);
- int writeSectionContent(raw_ostream &OS, WasmYAML::ProducersSection &Section);
- int writeSectionContent(raw_ostream &OS,
+ void writeSectionContent(raw_ostream &OS, WasmYAML::DylinkSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::NameSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::LinkingSection &Section);
+ void writeSectionContent(raw_ostream &OS, WasmYAML::ProducersSection &Section);
+ void writeSectionContent(raw_ostream &OS,
WasmYAML::TargetFeaturesSection &Section);
WasmYAML::Object &Obj;
uint32_t NumImportedFunctions = 0;
uint32_t NumImportedGlobals = 0;
uint32_t NumImportedEvents = 0;
+
+ bool HasError = false;
+ yaml::ErrorHandler ErrHandler;
+ void reportError(const Twine &Msg);
};
class SubSectionWriter {
@@ -115,7 +122,13 @@ static int writeLimits(const WasmYAML::Limits &Lim, raw_ostream &OS) {
return 0;
}
-static int writeInitExpr(const wasm::WasmInitExpr &InitExpr, raw_ostream &OS) {
+void WasmWriter::reportError(const Twine &Msg) {
+ ErrHandler(Msg);
+ HasError = true;
+}
+
+void WasmWriter::writeInitExpr(raw_ostream &OS,
+ const wasm::WasmInitExpr &InitExpr) {
writeUint8(OS, InitExpr.Opcode);
switch (InitExpr.Opcode) {
case wasm::WASM_OPCODE_I32_CONST:
@@ -134,29 +147,26 @@ static int writeInitExpr(const wasm::WasmInitExpr &InitExpr, raw_ostream &OS) {
encodeULEB128(InitExpr.Value.Global, OS);
break;
default:
- errs() << "Unknown opcode in init_expr: " << InitExpr.Opcode << "\n";
- return 1;
+ reportError("unknown opcode in init_expr: " + Twine(InitExpr.Opcode));
+ return;
}
writeUint8(OS, wasm::WASM_OPCODE_END);
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::DylinkSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::DylinkSection &Section) {
writeStringRef(Section.Name, OS);
encodeULEB128(Section.MemorySize, OS);
encodeULEB128(Section.MemoryAlignment, OS);
encodeULEB128(Section.TableSize, OS);
encodeULEB128(Section.TableAlignment, OS);
encodeULEB128(Section.Needed.size(), OS);
- for (StringRef Needed : Section.Needed) {
+ for (StringRef Needed : Section.Needed)
writeStringRef(Needed, OS);
- }
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::LinkingSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::LinkingSection &Section) {
writeStringRef(Section.Name, OS);
encodeULEB128(Section.Version, OS);
@@ -240,12 +250,10 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
}
SubSection.done();
}
-
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::NameSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::NameSection &Section) {
writeStringRef(Section.Name, OS);
if (Section.FunctionNames.size()) {
writeUint8(OS, wasm::WASM_NAMES_FUNCTION);
@@ -260,16 +268,15 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
SubSection.done();
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::ProducersSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::ProducersSection &Section) {
writeStringRef(Section.Name, OS);
int Fields = int(!Section.Languages.empty()) + int(!Section.Tools.empty()) +
int(!Section.SDKs.empty());
if (Fields == 0)
- return 0;
+ return;
encodeULEB128(Fields, OS);
for (auto &Field : {std::make_pair(StringRef("language"), &Section.Languages),
std::make_pair(StringRef("processed-by"), &Section.Tools),
@@ -283,52 +290,44 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
writeStringRef(Entry.Version, OS);
}
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::TargetFeaturesSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::TargetFeaturesSection &Section) {
writeStringRef(Section.Name, OS);
encodeULEB128(Section.Features.size(), OS);
for (auto &E : Section.Features) {
writeUint8(OS, E.Prefix);
writeStringRef(E.Name, OS);
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::CustomSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::CustomSection &Section) {
if (auto S = dyn_cast<WasmYAML::DylinkSection>(&Section)) {
- if (auto Err = writeSectionContent(OS, *S))
- return Err;
+ writeSectionContent(OS, *S);
} else if (auto S = dyn_cast<WasmYAML::NameSection>(&Section)) {
- if (auto Err = writeSectionContent(OS, *S))
- return Err;
+ writeSectionContent(OS, *S);
} else if (auto S = dyn_cast<WasmYAML::LinkingSection>(&Section)) {
- if (auto Err = writeSectionContent(OS, *S))
- return Err;
+ writeSectionContent(OS, *S);
} else if (auto S = dyn_cast<WasmYAML::ProducersSection>(&Section)) {
- if (auto Err = writeSectionContent(OS, *S))
- return Err;
+ writeSectionContent(OS, *S);
} else if (auto S = dyn_cast<WasmYAML::TargetFeaturesSection>(&Section)) {
- if (auto Err = writeSectionContent(OS, *S))
- return Err;
+ writeSectionContent(OS, *S);
} else {
writeStringRef(Section.Name, OS);
Section.Payload.writeAsBinary(OS);
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
+void WasmWriter::writeSectionContent(raw_ostream &OS,
WasmYAML::TypeSection &Section) {
encodeULEB128(Section.Signatures.size(), OS);
uint32_t ExpectedIndex = 0;
for (const WasmYAML::Signature &Sig : Section.Signatures) {
if (Sig.Index != ExpectedIndex) {
- errs() << "Unexpected type index: " << Sig.Index << "\n";
- return 1;
+ reportError("unexpected type index: " + Twine(Sig.Index));
+ return;
}
++ExpectedIndex;
writeUint8(OS, Sig.Form);
@@ -342,10 +341,9 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
writeUint8(OS, Sig.ReturnType);
}
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
+void WasmWriter::writeSectionContent(raw_ostream &OS,
WasmYAML::ImportSection &Section) {
encodeULEB128(Section.Imports.size(), OS);
for (const WasmYAML::Import &Import : Section.Imports) {
@@ -375,23 +373,20 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
writeLimits(Import.TableImport.TableLimits, OS);
break;
default:
- errs() << "Unknown import type: " << Import.Kind << "\n";
- return 1;
+ reportError("unknown import type: " +Twine(Import.Kind));
+ return;
}
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::FunctionSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::FunctionSection &Section) {
encodeULEB128(Section.FunctionTypes.size(), OS);
- for (uint32_t FuncType : Section.FunctionTypes) {
+ for (uint32_t FuncType : Section.FunctionTypes)
encodeULEB128(FuncType, OS);
- }
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
+void WasmWriter::writeSectionContent(raw_ostream &OS,
WasmYAML::ExportSection &Section) {
encodeULEB128(Section.Exports.size(), OS);
for (const WasmYAML::Export &Export : Section.Exports) {
@@ -399,83 +394,74 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
writeUint8(OS, Export.Kind);
encodeULEB128(Export.Index, OS);
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::StartSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::StartSection &Section) {
encodeULEB128(Section.StartFunction, OS);
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::TableSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::TableSection &Section) {
encodeULEB128(Section.Tables.size(), OS);
for (auto &Table : Section.Tables) {
writeUint8(OS, Table.ElemType);
writeLimits(Table.TableLimits, OS);
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::MemorySection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::MemorySection &Section) {
encodeULEB128(Section.Memories.size(), OS);
- for (const WasmYAML::Limits &Mem : Section.Memories) {
+ for (const WasmYAML::Limits &Mem : Section.Memories)
writeLimits(Mem, OS);
- }
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::GlobalSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::GlobalSection &Section) {
encodeULEB128(Section.Globals.size(), OS);
uint32_t ExpectedIndex = NumImportedGlobals;
for (auto &Global : Section.Globals) {
if (Global.Index != ExpectedIndex) {
- errs() << "Unexpected global index: " << Global.Index << "\n";
- return 1;
+ reportError("unexpected global index: " + Twine(Global.Index));
+ return;
}
++ExpectedIndex;
writeUint8(OS, Global.Type);
writeUint8(OS, Global.Mutable);
- writeInitExpr(Global.InitExpr, OS);
+ writeInitExpr(OS, Global.InitExpr);
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
+void WasmWriter::writeSectionContent(raw_ostream &OS,
WasmYAML::EventSection &Section) {
encodeULEB128(Section.Events.size(), OS);
uint32_t ExpectedIndex = NumImportedEvents;
for (auto &Event : Section.Events) {
if (Event.Index != ExpectedIndex) {
- errs() << "Unexpected event index: " << Event.Index << "\n";
- return 1;
+ reportError("unexpected event index: " + Twine(Event.Index));
+ return;
}
++ExpectedIndex;
encodeULEB128(Event.Attribute, OS);
encodeULEB128(Event.SigIndex, OS);
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::ElemSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::ElemSection &Section) {
encodeULEB128(Section.Segments.size(), OS);
for (auto &Segment : Section.Segments) {
encodeULEB128(Segment.TableIndex, OS);
- writeInitExpr(Segment.Offset, OS);
+ writeInitExpr(OS, Segment.Offset);
encodeULEB128(Segment.Functions.size(), OS);
- for (auto &Function : Segment.Functions) {
+ for (auto &Function : Segment.Functions)
encodeULEB128(Function, OS);
- }
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
+void WasmWriter::writeSectionContent(raw_ostream &OS,
WasmYAML::CodeSection &Section) {
encodeULEB128(Section.Functions.size(), OS);
uint32_t ExpectedIndex = NumImportedFunctions;
@@ -483,8 +469,8 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
std::string OutString;
raw_string_ostream StringStream(OutString);
if (Func.Index != ExpectedIndex) {
- errs() << "Unexpected function index: " << Func.Index << "\n";
- return 1;
+ reportError("unexpected function index: " + Twine(Func.Index));
+ return;
}
++ExpectedIndex;
@@ -501,31 +487,28 @@ int WasmWriter::writeSectionContent(raw_ostream &OS,
encodeULEB128(OutString.size(), OS);
OS << OutString;
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::DataSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::DataSection &Section) {
encodeULEB128(Section.Segments.size(), OS);
for (auto &Segment : Section.Segments) {
encodeULEB128(Segment.InitFlags, OS);
if (Segment.InitFlags & wasm::WASM_SEGMENT_HAS_MEMINDEX)
encodeULEB128(Segment.MemoryIndex, OS);
if ((Segment.InitFlags & wasm::WASM_SEGMENT_IS_PASSIVE) == 0)
- writeInitExpr(Segment.Offset, OS);
+ writeInitExpr(OS, Segment.Offset);
encodeULEB128(Segment.Content.binary_size(), OS);
Segment.Content.writeAsBinary(OS);
}
- return 0;
}
-int WasmWriter::writeSectionContent(raw_ostream &OS,
- WasmYAML::DataCountSection &Section) {
+void WasmWriter::writeSectionContent(raw_ostream &OS,
+ WasmYAML::DataCountSection &Section) {
encodeULEB128(Section.Count, OS);
- return 0;
}
-int WasmWriter::writeRelocSection(raw_ostream &OS, WasmYAML::Section &Sec,
+void WasmWriter::writeRelocSection(raw_ostream &OS, WasmYAML::Section &Sec,
uint32_t SectionIndex) {
switch (Sec.Type) {
case wasm::WASM_SEC_CODE:
@@ -541,7 +524,6 @@ int WasmWriter::writeRelocSection(raw_ostream &OS, WasmYAML::Section &Sec,
}
default:
llvm_unreachable("not yet implemented");
- return 1;
}
encodeULEB128(SectionIndex, OS);
@@ -560,7 +542,6 @@ int WasmWriter::writeRelocSection(raw_ostream &OS, WasmYAML::Section &Sec,
encodeULEB128(Reloc.Addend, OS);
}
}
- return 0;
}
bool WasmWriter::writeWasm(raw_ostream &OS) {
@@ -575,58 +556,46 @@ bool WasmWriter::writeWasm(raw_ostream &OS) {
if (auto S = dyn_cast<WasmYAML::CustomSection>(Sec.get()))
SecName = S->Name;
if (!Checker.isValidSectionOrder(Sec->Type, SecName)) {
- errs() << "Out of order section type: " << Sec->Type << "\n";
+ reportError("out of order section type: " + Twine(Sec->Type));
return false;
}
encodeULEB128(Sec->Type, OS);
std::string OutString;
raw_string_ostream StringStream(OutString);
- if (auto S = dyn_cast<WasmYAML::CustomSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::TypeSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::ImportSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::FunctionSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::TableSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::MemorySection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::GlobalSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::EventSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::ExportSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::StartSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::ElemSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::CodeSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::DataSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else if (auto S = dyn_cast<WasmYAML::DataCountSection>(Sec.get())) {
- if (auto Err = writeSectionContent(StringStream, *S))
- return Err;
- } else {
- errs() << "Unknown section type: " << Sec->Type << "\n";
+ if (auto S = dyn_cast<WasmYAML::CustomSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::TypeSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::ImportSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::FunctionSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::TableSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::MemorySection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::GlobalSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::EventSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::ExportSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::StartSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::ElemSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::CodeSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::DataSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else if (auto S = dyn_cast<WasmYAML::DataCountSection>(Sec.get()))
+ writeSectionContent(StringStream, *S);
+ else
+ reportError("unknown section type: " + Twine(Sec->Type));
+
+ if (HasError)
return false;
- }
+
StringStream.flush();
// Write the section size followed by the content
@@ -658,8 +627,8 @@ bool WasmWriter::writeWasm(raw_ostream &OS) {
namespace llvm {
namespace yaml {
-bool yaml2wasm(WasmYAML::Object &Doc, raw_ostream &Out) {
- WasmWriter Writer(Doc);
+bool yaml2wasm(WasmYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH) {
+ WasmWriter Writer(Doc, EH);
return Writer.writeWasm(Out);
}
OpenPOWER on IntegriCloud