[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
Fri Sep 10 06:31:25 PDT 2021


This revision was automatically updated to reflect the committed changes.
Closed by commit rGe4b2f3054a77: [WebAssembly][libObject] Avoid re-use of Section object during parsing (authored by sbc100).

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.371911.patch
Type: text/x-patch
Size: 2638 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210910/adc310f1/attachment.bin>


More information about the llvm-commits mailing list