[PATCH] D108984: [WebAssembly][libObject] Avoid re-use of Section object during parsing
Sam Clegg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 31 12:38:00 PDT 2021
sbc100 updated this revision to Diff 369764.
sbc100 added a comment.
Better test
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D108984/new/
https://reviews.llvm.org/D108984
Files:
llvm/lib/Object/WasmObjectFile.cpp
llvm/test/tools/llvm-objcopy/wasm/basic-only-section.test
Index: llvm/test/tools/llvm-objcopy/wasm/basic-only-section.test
===================================================================
--- llvm/test/tools/llvm-objcopy/wasm/basic-only-section.test
+++ llvm/test/tools/llvm-objcopy/wasm/basic-only-section.test
@@ -1,32 +1,36 @@
## Test --only-section.
# RUN: yaml2obj %s -o %t
-# RUN: llvm-objcopy --only-section=producers %t %t2
+# RUN: llvm-objcopy --only-section=foo %t %t2
# RUN: obj2yaml %t2 | FileCheck --implicit-check-not TYPE --implicit-check-not linking %s
## Test that it's the same with only-section + keep-section (for the same section).
-# RUN: llvm-objcopy --only-section=producers --keep-section=producers %t %t2
+# RUN: llvm-objcopy --only-section=foo --keep-section=foo %t %t2
# RUN: obj2yaml %t2 | FileCheck --implicit-check-not TYPE --implicit-check-not linking %s
## Also test that only-section overrides remove-section.
-# RUN: llvm-objcopy --only-section=producers --remove-section=producers %t %t2
+# RUN: llvm-objcopy --only-section=foo --remove-section=foo %t %t2
# RUN: obj2yaml %t2 | FileCheck --implicit-check-not linking %s
-## This file has both known and custom sections. Check that only the producers section is left.
+## This file has both known and custom sections. Check that only the foo section is left.
# CHECK: Sections:
# CHECK-NEXT: - Type: CUSTOM
-# CHECK-NEXT: Name: producers
-# CHECK-NEXT: Tools:
+# CHECK-NEXT: Name: foo
+# CHECK-NEXT: Payload: DEADBEEF
+# CHECK-NEXT: ...
## Test that only-section + keep-section keeps both sections.
-# RUN: llvm-objcopy --only-section=producers --keep-section=linking %t %t2
+# RUN: llvm-objcopy --only-section=foo --keep-section=linking %t %t2
# RUN: obj2yaml %t2 | FileCheck --implicit-check-not=TYPE --check-prefix=KEEP %s
+# KEEP: Name: foo
# KEEP: Name: linking
-# KEEP: Name: producers
--- !WASM
FileHeader:
Version: 0x00000001
Sections:
+ - Type: CUSTOM
+ Name: foo
+ Payload: DEADBEEF
- Type: TYPE
Signatures:
- Index: 0
@@ -37,8 +41,3 @@
- Type: CUSTOM
Name: linking
Version: 2
- - Type: CUSTOM
- Name: producers
- Tools:
- - Name: clang
- Version: 9.0.0
Index: llvm/lib/Object/WasmObjectFile.cpp
===================================================================
--- llvm/lib/Object/WasmObjectFile.cpp
+++ llvm/lib/Object/WasmObjectFile.cpp
@@ -286,9 +286,9 @@
return;
}
- WasmSection Sec;
WasmSectionOrderChecker Checker;
while (Ctx.Ptr < Ctx.End) {
+ WasmSection Sec;
if ((Err = readSection(Sec, Ctx, Checker)))
return;
if ((Err = parseSection(Sec)))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D108984.369764.patch
Type: text/x-patch
Size: 2638 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210831/d05fb940/attachment.bin>
More information about the llvm-commits
mailing list