diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp index dbd5498e003d..8578997fe579 100644 --- a/llvm/lib/ObjectYAML/ELFYAML.cpp +++ b/llvm/lib/ObjectYAML/ELFYAML.cpp @@ -542,6 +542,7 @@ void ScalarEnumerationTraits::enumeration( llvm_unreachable("Unsupported architecture"); } #undef ELF_RELOC + IO.enumFallback(Value); } void ScalarEnumerationTraits::enumeration( diff --git a/llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml b/llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml new file mode 100644 index 000000000000..edd5dbce1236 --- /dev/null +++ b/llvm/test/Object/X86/yaml-elf-x86-rel-broken.yaml @@ -0,0 +1,29 @@ +# RUN: yaml2obj %s > %t +# RUN: obj2yaml %t | FileCheck %s + +# CHECK: Relocations: +# CHECK-NEXT: - Offset: +# CHECK-NEXT: Symbol: +# CHECK-NEXT: Type: 0x000000FF + +!ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_386 +Sections: + - Type: SHT_PROGBITS + Name: .text + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + AddressAlign: 0x04 + Content: 0000000000000000 + - Type: SHT_REL + Name: .rel.text + Link: .symtab + Info: .text + AddressAlign: 0x04 + Relocations: + - Offset: 0 + Symbol: main + Type: 0xFF