[PATCH] D95163: [WebAssembly] Test that invalid symbol/relocation types generate errors
Sam Clegg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 22 07:10:31 PST 2021
sbc100 added a comment.
In D95163#2514514 <https://reviews.llvm.org/D95163#2514514>, @MaskRay wrote:
> In ELF, we usually use yaml2obj to generate invalid object files, instead of checking in precanned binaries. You can find lots of grimar's changes migrating away from binaries.
I generally prefer that method too, however I didn't think it was possible for this kind of case. How would I generate an invalid relocation type? Currently relocations are specified with a string:
For example here is the yaml I used as a starting point for this invalid binary:
--- !WASM
FileHeader:
Version: 0x1
Sections:
- Type: TYPE
Signatures:
- Index: 0
ParamTypes: []
ReturnTypes:
- I32
- Type: FUNCTION
FunctionTypes: [ 0 ]
- Type: CODE
Relocations:
- Type: R_WASM_TABLE_INDEX_SLEB
Index: 0
Offset: 0x4
Functions:
- Index: 0
Locals: []
Body: 4181808080000B
- Type: CUSTOM
Name: linking
Version: 2
SymbolTable:
- Index: 0
Kind: FUNCTION
Name: foo
Flags: [ VISIBILITY_HIDDEN ]
Function: 0
In this case I modified the binary to change the `R_WASM_TABLE_INDEX_SLEB` value to 63 (an invalid value). If I try to do that in the yaml I get:
yaml2obj out.yaml > obj.o
YAML:15:26: error: unknown enumerated scalar
- Type: 63
^~
yaml2obj: error: failed to parse YAML input: Invalid argument
Also, I see a lot of ELF files (and very few yaml files) checked in directly to `llvm/test/Object/Inputs/`. Is that just because there is ongoing work to covert them?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D95163/new/
https://reviews.llvm.org/D95163
More information about the llvm-commits
mailing list