diff --git a/llvm/lib/Object/WasmObjectFile.cpp b/llvm/lib/Object/WasmObjectFile.cpp index 05bd7302c4971..dfe86a45df322 100644 --- a/llvm/lib/Object/WasmObjectFile.cpp +++ b/llvm/lib/Object/WasmObjectFile.cpp @@ -265,7 +265,6 @@ static wasm::WasmTableType readTableType(WasmObjectFile::ReadContext &Ctx) { static Error readSection(WasmSection &Section, WasmObjectFile::ReadContext &Ctx, WasmSectionOrderChecker &Checker) { - Section.Offset = Ctx.Ptr - Ctx.Start; Section.Type = readUint8(Ctx); LLVM_DEBUG(dbgs() << "readSection type=" << Section.Type << "\n"); // When reading the section's size, store the size of the LEB used to encode @@ -273,6 +272,7 @@ static Error readSection(WasmSection &Section, WasmObjectFile::ReadContext &Ctx, const uint8_t *PreSizePtr = Ctx.Ptr; uint32_t Size = readVaruint32(Ctx); Section.HeaderSecSizeEncodingLen = Ctx.Ptr - PreSizePtr; + Section.Offset = Ctx.Ptr - Ctx.Start; if (Size == 0) return make_error("zero length section", object_error::parse_failed); diff --git a/llvm/test/MC/WebAssembly/custom-sections.ll b/llvm/test/MC/WebAssembly/custom-sections.ll index cf2d7098ae4b1..ba669716c934d 100644 --- a/llvm/test/MC/WebAssembly/custom-sections.ll +++ b/llvm/test/MC/WebAssembly/custom-sections.ll @@ -15,18 +15,18 @@ target triple = "wasm32-unknown-unknown" ; CHECK: Section { ; CHECK: Type: CUSTOM (0x0) ; CHECK: Size: 3 -; CHECK: Offset: 38 +; CHECK: Offset: 44 ; CHECK: Name: red ; CHECK: } ; CHECK: Section { ; CHECK: Type: CUSTOM (0x0) ; CHECK: Size: 6 -; CHECK: Offset: 51 +; CHECK: Offset: 57 ; CHECK: Name: green ; CHECK: } ; CHECK: Section { ; CHECK: Type: CUSTOM (0x0) ; CHECK: Size: 25 -; CHECK: Offset: 84 +; CHECK: Offset: 90 ; CHECK: Name: producers ; CHECK: } diff --git a/llvm/test/MC/WebAssembly/debug-info.ll b/llvm/test/MC/WebAssembly/debug-info.ll index c8ab7a93165fb..a65ce0ee83920 100644 --- a/llvm/test/MC/WebAssembly/debug-info.ll +++ b/llvm/test/MC/WebAssembly/debug-info.ll @@ -7,37 +7,37 @@ ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: TYPE (0x1) ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: Offset: 8 +; CHECK-NEXT: Offset: 14 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: IMPORT (0x2) ; CHECK-NEXT: Size: 81 -; CHECK-NEXT: Offset: 18 +; CHECK-NEXT: Offset: 24 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: FUNCTION (0x3) ; CHECK-NEXT: Size: 2 -; CHECK-NEXT: Offset: 105 +; CHECK-NEXT: Offset: 111 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: ELEM (0x9) ; CHECK-NEXT: Size: 7 -; CHECK-NEXT: Offset: 113 +; CHECK-NEXT: Offset: 119 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: DATACOUNT (0xC) ; CHECK-NEXT: Size: 1 -; CHECK-NEXT: Offset: 126 +; CHECK-NEXT: Offset: 132 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CODE (0xA) ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: Offset: 133 +; CHECK-NEXT: Offset: 139 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: DATA (0xB) ; CHECK-NEXT: Size: 19 -; CHECK-NEXT: Offset: 143 +; CHECK-NEXT: Offset: 149 ; CHECK-NEXT: Segments [ ; CHECK-NEXT: Segment { ; CHECK-NEXT: Name: .data.foo @@ -54,91 +54,91 @@ ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 86 -; CHECK-NEXT: Offset: 168 +; CHECK-NEXT: Offset: 174 ; CHECK-NEXT: Name: .debug_abbrev ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 114 -; CHECK-NEXT: Offset: 274 +; CHECK-NEXT: Offset: 280 ; CHECK-NEXT: Name: .debug_info ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 48 -; CHECK-NEXT: Offset: 406 +; CHECK-NEXT: Offset: 412 ; CHECK-NEXT: Name: .debug_aranges ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 121 -; CHECK-NEXT: Offset: 475 +; CHECK-NEXT: Offset: 481 ; CHECK-NEXT: Name: .debug_str ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 42 -; CHECK-NEXT: Offset: 613 +; CHECK-NEXT: Offset: 619 ; CHECK-NEXT: Name: .debug_pubnames ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 26 -; CHECK-NEXT: Offset: 677 +; CHECK-NEXT: Offset: 683 ; CHECK-NEXT: Name: .debug_pubtypes ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 56 -; CHECK-NEXT: Offset: 725 +; CHECK-NEXT: Offset: 731 ; CHECK-NEXT: Name: .debug_line ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 91 -; CHECK-NEXT: Offset: 799 +; CHECK-NEXT: Offset: 805 ; CHECK-NEXT: Name: linking ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 9 -; CHECK-NEXT: Offset: 904 +; CHECK-NEXT: Offset: 910 ; CHECK-NEXT: Name: reloc.DATA ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 61 -; CHECK-NEXT: Offset: 930 +; CHECK-NEXT: Offset: 936 ; CHECK-NEXT: Name: reloc..debug_info ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 18 -; CHECK-NEXT: Offset: 1015 +; CHECK-NEXT: Offset: 1021 ; CHECK-NEXT: Name: reloc..debug_aranges ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 1060 +; CHECK-NEXT: Offset: 1066 ; CHECK-NEXT: Name: reloc..debug_pubnames ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 1094 +; CHECK-NEXT: Offset: 1100 ; CHECK-NEXT: Name: reloc..debug_pubtypes ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 1128 +; CHECK-NEXT: Offset: 1134 ; CHECK-NEXT: Name: reloc..debug_line ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 77 -; CHECK-NEXT: Offset: 1158 +; CHECK-NEXT: Offset: 1164 ; CHECK-NEXT: Name: producers ; CHECK-NEXT: } ; CHECK-NEXT:] diff --git a/llvm/test/MC/WebAssembly/debug-info64.ll b/llvm/test/MC/WebAssembly/debug-info64.ll index a63200c908b77..d0081164d73ee 100644 --- a/llvm/test/MC/WebAssembly/debug-info64.ll +++ b/llvm/test/MC/WebAssembly/debug-info64.ll @@ -7,37 +7,37 @@ ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: TYPE (0x1) ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: Offset: 8 +; CHECK-NEXT: Offset: 14 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: IMPORT (0x2) ; CHECK-NEXT: Size: 81 -; CHECK-NEXT: Offset: 18 +; CHECK-NEXT: Offset: 24 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: FUNCTION (0x3) ; CHECK-NEXT: Size: 2 -; CHECK-NEXT: Offset: 105 +; CHECK-NEXT: Offset: 111 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: ELEM (0x9) ; CHECK-NEXT: Size: 7 -; CHECK-NEXT: Offset: 113 +; CHECK-NEXT: Offset: 119 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: DATACOUNT (0xC) ; CHECK-NEXT: Size: 1 -; CHECK-NEXT: Offset: 126 +; CHECK-NEXT: Offset: 132 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CODE (0xA) ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: Offset: 133 +; CHECK-NEXT: Offset: 139 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: DATA (0xB) ; CHECK-NEXT: Size: 27 -; CHECK-NEXT: Offset: 143 +; CHECK-NEXT: Offset: 149 ; CHECK-NEXT: Segments [ ; CHECK-NEXT: Segment { ; CHECK-NEXT: Name: .data.foo @@ -54,97 +54,97 @@ ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 86 -; CHECK-NEXT: Offset: 176 +; CHECK-NEXT: Offset: 182 ; CHECK-NEXT: Name: .debug_abbrev ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 130 -; CHECK-NEXT: Offset: 282 +; CHECK-NEXT: Offset: 288 ; CHECK-NEXT: Name: .debug_info ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 80 -; CHECK-NEXT: Offset: 430 +; CHECK-NEXT: Offset: 436 ; CHECK-NEXT: Name: .debug_aranges ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 121 -; CHECK-NEXT: Offset: 531 +; CHECK-NEXT: Offset: 537 ; CHECK-NEXT: Name: .debug_str ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 42 -; CHECK-NEXT: Offset: 669 +; CHECK-NEXT: Offset: 675 ; CHECK-NEXT: Name: .debug_pubnames ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 26 -; CHECK-NEXT: Offset: 733 +; CHECK-NEXT: Offset: 739 ; CHECK-NEXT: Name: .debug_pubtypes ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 60 -; CHECK-NEXT: Offset: 781 +; CHECK-NEXT: Offset: 787 ; CHECK-NEXT: Name: .debug_line ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 91 -; CHECK-NEXT: Offset: 859 +; CHECK-NEXT: Offset: 865 ; CHECK-NEXT: Name: linking ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 9 -; CHECK-NEXT: Offset: 964 +; CHECK-NEXT: Offset: 970 ; CHECK-NEXT: Name: reloc.DATA ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 61 -; CHECK-NEXT: Offset: 990 +; CHECK-NEXT: Offset: 996 ; CHECK-NEXT: Name: reloc..debug_info ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 18 -; CHECK-NEXT: Offset: 1075 +; CHECK-NEXT: Offset: 1081 ; CHECK-NEXT: Name: reloc..debug_aranges ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 1120 +; CHECK-NEXT: Offset: 1126 ; CHECK-NEXT: Name: reloc..debug_pubnames ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 1154 +; CHECK-NEXT: Offset: 1160 ; CHECK-NEXT: Name: reloc..debug_pubtypes ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 1188 +; CHECK-NEXT: Offset: 1194 ; CHECK-NEXT: Name: reloc..debug_line ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 77 -; CHECK-NEXT: Offset: 1218 +; CHECK-NEXT: Offset: 1224 ; CHECK-NEXT: Name: producers ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 11 -; CHECK-NEXT: Offset: 1311 +; CHECK-NEXT: Offset: 1317 ; CHECK-NEXT: Name: target_features ; CHECK-NEXT: } ; CHECK-NEXT: ] diff --git a/llvm/test/MC/WebAssembly/tag-section.ll b/llvm/test/MC/WebAssembly/tag-section.ll index c40e132e36f04..56738ec80c8dc 100644 --- a/llvm/test/MC/WebAssembly/tag-section.ll +++ b/llvm/test/MC/WebAssembly/tag-section.ll @@ -53,4 +53,4 @@ define i32 @test_throw1(ptr %p) { ; SEC: Type: TAG (0xD) ; SEC-NEXT: Size: 3 -; SEC-NEXT: Offset: 63 +; SEC-NEXT: Offset: 69 diff --git a/llvm/test/tools/llvm-readobj/wasm/globals.test b/llvm/test/tools/llvm-readobj/wasm/globals.test index 4e9f6403c267c..0dff18dc5d962 100644 --- a/llvm/test/tools/llvm-readobj/wasm/globals.test +++ b/llvm/test/tools/llvm-readobj/wasm/globals.test @@ -19,7 +19,7 @@ Sections: # CHECK: Section { # CHECK-NEXT: Type: DATA (0xB) # CHECK-NEXT: Size: 7 -# CHECK-NEXT: Offset: 8 +# CHECK-NEXT: Offset: 14 # CHECK-NEXT: Segments [ # CHECK-NEXT: Segment { # CHECK-NEXT: Size: 1 diff --git a/llvm/test/tools/llvm-readobj/wasm/sections.test b/llvm/test/tools/llvm-readobj/wasm/sections.test index 8b8a526295eb2..1a4aadad392f3 100644 --- a/llvm/test/tools/llvm-readobj/wasm/sections.test +++ b/llvm/test/tools/llvm-readobj/wasm/sections.test @@ -6,27 +6,27 @@ # CHECK-NEXT: Section { # CHECK-NEXT: Type: TYPE (0x1) # CHECK-NEXT: Size: 17 -# CHECK-NEXT: Offset: 8 +# CHECK-NEXT: Offset: 14 # CHECK-NEXT: } # CHECK-NEXT: Section { # CHECK-NEXT: Type: IMPORT (0x2) # CHECK-NEXT: Size: 93 -# CHECK-NEXT: Offset: 31 +# CHECK-NEXT: Offset: 37 # CHECK-NEXT: } # CHECK-NEXT: Section { # CHECK-NEXT: Type: FUNCTION (0x3) # CHECK-NEXT: Size: 3 -# CHECK-NEXT: Offset: 130 +# CHECK-NEXT: Offset: 136 # CHECK-NEXT: } # CHECK-NEXT: Section { # CHECK-NEXT: Type: CODE (0xA) # CHECK-NEXT: Size: 36 -# CHECK-NEXT: Offset: 139 +# CHECK-NEXT: Offset: 145 # CHECK-NEXT: } # CHECK-NEXT: Section { # CHECK-NEXT: Type: DATA (0xB) # CHECK-NEXT: Size: 19 -# CHECK-NEXT: Offset: 181 +# CHECK-NEXT: Offset: 187 # CHECK-NEXT: Segments [ # CHECK-NEXT: Segment { # CHECK-NEXT: Name: .rodata..L.str @@ -38,13 +38,13 @@ # CHECK-NEXT: Section { # CHECK-NEXT: Type: CUSTOM (0x0) # CHECK-NEXT: Size: 89 -# CHECK-NEXT: Offset: 206 +# CHECK-NEXT: Offset: 212 # CHECK-NEXT: Name: linking # CHECK-NEXT: } # CHECK-NEXT: Section { # CHECK-NEXT: Type: CUSTOM (0x0) # CHECK-NEXT: Size: 15 -# CHECK-NEXT: Offset: 309 +# CHECK-NEXT: Offset: 315 # CHECK-NEXT: Name: reloc.CODE # CHECK-NEXT: } # CHECK-NEXT: ]