Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D57479
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352806
91177308-0d34-0410-b5e6-
96231b3b80d8
// Now that the section is complete and we know how big it is, patch up the
// section size field at the start of the section.
void WasmObjectWriter::endSection(SectionBookkeeping &Section) {
- uint64_t Size = W.OS.tell() - Section.PayloadOffset;
+ uint64_t Size = W.OS.tell();
+ // /dev/null doesn't support seek/tell and can report offset of 0.
+ // Simply skip this patching in that case.
+ if (!Size)
+ return;
+
+ Size -= Section.PayloadOffset;
if (uint32_t(Size) != Size)
report_fatal_error("section size does not fit in a uint32_t");
--- /dev/null
+# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj -o /dev/null < %s
+
+ .text
+ .section .text.main,"",@
+ .type main,@function
+main:
+ .functype main (i32, i32) -> (i32)
+ end_function
+.Lfunc_end0:
+ .size main, .Lfunc_end0-main