undef-broken-debug.test 2.41 KB
# REQUIRES: x86
# RUN: yaml2obj %s -o %t.o
# RUN: not ld.lld %t.o -o /dev/null

# The debug info has a broken relocation. Check that we don't crash.

# We used to dereference null Target in DWARF.cpp:findAux while reporting a duplicate symbol error,
# because Target wasn't initialized yet.
# RUN: not ld.lld %t.o %t.o -o /dev/null

--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Content:         '0000000000000000'
  - Name:            .rela.text
    Type:            SHT_RELA
    AddressAlign:    8
    Link:            .symtab
    Info:            .text
    Relocations:
      - Offset:          0x0000000000000000
        Symbol:          bar
        Type:            R_X86_64_64
  - Name:            .debug_line
    Type:            SHT_PROGBITS
    Content:         3300000002001C0000000101FB0E0D000101010100000001000001006162632E7300000000000009020000000000000000140208000101
  - Name:            .rela.debug_line
    AddressAlign:    8
    Type:            SHT_RELA
    Link:            .symtab
    Info:            .debug_line
    Relocations:
      - Offset:          0x0000000000000029
        Symbol:          bar
        Type:            R_X86_64_64
  - Name:            .debug_info
    Type:            SHT_PROGBITS
    AddressAlign:    0x0000000000000001
    Content:         0C000000040000000000080100000000
  - Name:            .rela.debug_info
    Type:            SHT_RELA
    Link:            .symtab
    AddressAlign:    0x0000000000000008
    Info:            .debug_info
    Relocations:
      - Offset:          0x0000000000000006
        Symbol:          .debug_abbrev
        Type:            R_X86_64_32
      - Offset:          0x000000000000000C
        Symbol:          .debug_line
        Type:            R_X86_64_32
  - Name:            .debug_abbrev
    Type:            SHT_PROGBITS
    AddressAlign:    0x0000000000000001
    Content:         '0111001017000000'

Symbols:
  - Name:            .debug_abbrev
    Type:            STT_SECTION
    Section:         .debug_abbrev
  - Name:            .debug_line
    Type:            STT_SECTION
    Section:         .debug_line
  - Name:            _start
    Section:         .text
    Binding:         STB_GLOBAL 
  - Name:            bar
    Binding:         STB_GLOBAL