mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
obj2yaml: Don't crash if the characteristics field is zero
obj2yaml would fail when seeing a Weak External auxiliary record with a characteristics field holding zero instead of one of IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY, IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY, or IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205911 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
77f268945e
commit
aef1966ed6
@ -38,6 +38,7 @@ void ScalarEnumerationTraits<COFFYAML::COMDATType>::enumeration(
|
|||||||
void
|
void
|
||||||
ScalarEnumerationTraits<COFFYAML::WeakExternalCharacteristics>::enumeration(
|
ScalarEnumerationTraits<COFFYAML::WeakExternalCharacteristics>::enumeration(
|
||||||
IO &IO, COFFYAML::WeakExternalCharacteristics &Value) {
|
IO &IO, COFFYAML::WeakExternalCharacteristics &Value) {
|
||||||
|
IO.enumCase(Value, "0", 0);
|
||||||
ECase(IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY);
|
ECase(IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY);
|
||||||
ECase(IMAGE_WEAK_EXTERN_SEARCH_LIBRARY);
|
ECase(IMAGE_WEAK_EXTERN_SEARCH_LIBRARY);
|
||||||
ECase(IMAGE_WEAK_EXTERN_SEARCH_ALIAS);
|
ECase(IMAGE_WEAK_EXTERN_SEARCH_ALIAS);
|
||||||
|
43
test/Object/Inputs/COFF/weak-external.yaml
Normal file
43
test/Object/Inputs/COFF/weak-external.yaml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
header:
|
||||||
|
Machine: IMAGE_FILE_MACHINE_I386
|
||||||
|
Characteristics: [ IMAGE_FILE_LINE_NUMS_STRIPPED, IMAGE_FILE_32BIT_MACHINE ]
|
||||||
|
sections:
|
||||||
|
- Name: .text
|
||||||
|
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
|
||||||
|
Alignment: 4
|
||||||
|
SectionData: 5589E583E4F0E800000000B800000000C9C39090
|
||||||
|
Relocations:
|
||||||
|
- VirtualAddress: 7
|
||||||
|
SymbolName: ___main
|
||||||
|
Type: IMAGE_REL_I386_REL32
|
||||||
|
symbols:
|
||||||
|
- Name: .file
|
||||||
|
Value: 0
|
||||||
|
SectionNumber: 65534
|
||||||
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||||
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||||
|
StorageClass: IMAGE_SYM_CLASS_FILE
|
||||||
|
File: 'file'
|
||||||
|
- Name: .text
|
||||||
|
Value: 0
|
||||||
|
SectionNumber: 1
|
||||||
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||||
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||||
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||||
|
SectionDefinition:
|
||||||
|
Length: 18
|
||||||
|
NumberOfRelocations: 1
|
||||||
|
NumberOfLinenumbers: 0
|
||||||
|
CheckSum: 0
|
||||||
|
Number: 0
|
||||||
|
- Name: ___main
|
||||||
|
Value: 0
|
||||||
|
SectionNumber: 0
|
||||||
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||||
|
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
||||||
|
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
||||||
|
WeakExternal:
|
||||||
|
TagIndex: 0
|
||||||
|
Characteristics: 0
|
||||||
|
...
|
3
test/Object/obj2yaml-coff-weak-external.test
Normal file
3
test/Object/obj2yaml-coff-weak-external.test
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
RUN: yaml2obj %p/Inputs/COFF/weak-external.yaml | obj2yaml | FileCheck %s --check-prefix COFF-I386
|
||||||
|
|
||||||
|
COFF-I386: Characteristics: 0
|
Loading…
Reference in New Issue
Block a user