pdata-arm64-bad.yaml 3.07 KB
# RUN: yaml2obj %s -o %t.obj
# RUN: not lld-link /out:%t.exe /entry:func1 /subsystem:console %t.obj 2>&1 | FileCheck %s

# This file is like pdata-arm64.yaml, except that .pdata has been extended with
# 4 bytes. This can happen due to for example bad assembler input. Check that
# lld errors gracefully instead of crashing.

# CHECK: unexpected .pdata size: 20 is not a multiple of 8

--- !COFF
header:
  Machine:         IMAGE_FILE_MACHINE_ARM64
  Characteristics: [  ]
sections:
  - Name:            .text
    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
    Alignment:       4
    SectionData:     ff4300d1f37b00a9f303012a00000094e003132a00000094f37b40a9ff430091c0035fd6f353bea9fe0b00f9f303012af403022a00000094e003132a00000094e003142a00000094fe0b40f9f353c2a8c0035fd6c0035fd6
    Relocations:
      - VirtualAddress:  12
        SymbolName:      func3
        Type:            IMAGE_REL_ARM64_BRANCH26
      - VirtualAddress:  20
        SymbolName:      func3
        Type:            IMAGE_REL_ARM64_BRANCH26
      - VirtualAddress:  52
        SymbolName:      func3
        Type:            IMAGE_REL_ARM64_BRANCH26
      - VirtualAddress:  60
        SymbolName:      func3
        Type:            IMAGE_REL_ARM64_BRANCH26
      - VirtualAddress:  68
        SymbolName:      func3
        Type:            IMAGE_REL_ARM64_BRANCH26
  - Name:            .pdata
    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
    Alignment:       4
    SectionData:     0000000031002201000000002500a10000000000
    Relocations:
      - VirtualAddress:  0
        SymbolName:      func2
        Type:            IMAGE_REL_ARM64_ADDR32NB
      - VirtualAddress:  8
        SymbolName:      func1
        Type:            IMAGE_REL_ARM64_ADDR32NB
symbols:
  - Name:            .text
    Value:           0
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition:
      Length:          57
      NumberOfRelocations: 0
      NumberOfLinenumbers: 0
      CheckSum:        0
      Number:          1
  - Name:            .pdata
    Value:           0
    SectionNumber:   2
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_STATIC
    SectionDefinition:
      Length:          20
      NumberOfRelocations: 2
      NumberOfLinenumbers: 0
      CheckSum:        0
      Number:          2
  - Name:            func1
    Value:           0
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
  - Name:            func2
    Value:           36
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
  - Name:            func3
    Value:           84
    SectionNumber:   1
    SimpleType:      IMAGE_SYM_TYPE_NULL
    ComplexType:     IMAGE_SYM_DTYPE_NULL
    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
...