brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.7 KiB · 80a9dfa Raw
197 lines · yaml
1# Test reading an ExceptionRecord which is referenced in different ways:2# - Relocation against base of .xdata record, immediate offset in .pdata3#   (what LLVM produces)4# - Relocation against symbol in .xdata, no immediate offset in .pdata5#   (what MSVC produces)6# - Combination of the two above (unlikely to occur in the wild, but for7#   testing the consistency of the code)8 9# RUN: yaml2obj %s -o %t.obj10# RUN: llvm-readobj --unwind %t.obj | FileCheck %s11 12# CHECK:      UnwindInformation [13# CHECK-NEXT:   RuntimeFunction {14# CHECK-NEXT:     Function: func (0x0)15# CHECK-NEXT:     ExceptionRecord: .xdata (0x0)16# CHECK-NEXT:     ExceptionData {17# CHECK-NEXT:       FunctionLength: 418# CHECK-NEXT:       Version: 019# CHECK-NEXT:       ExceptionData: No20# CHECK-NEXT:       EpiloguePacked: No21# CHECK-NEXT:       EpilogueScopes: 022# CHECK-NEXT:       ByteCodeLength: 423# CHECK-NEXT:       Prologue [24# CHECK-NEXT:         0xd400              ; str x19, [sp, #-8]!25# CHECK-NEXT:         0xe4                ; end26# CHECK-NEXT:       ]27# CHECK-NEXT:       EpilogueScopes [28# CHECK-NEXT:       ]29# CHECK-NEXT:     }30# CHECK-NEXT:   }31# CHECK-NEXT:   RuntimeFunction {32# CHECK-NEXT:     Function: func2 (0x4)33# CHECK-NEXT:     ExceptionRecord: .xdata +0x8 (0x8)34# CHECK-NEXT:     ExceptionData {35# CHECK-NEXT:       FunctionLength: 436# CHECK-NEXT:       Version: 037# CHECK-NEXT:       ExceptionData: No38# CHECK-NEXT:       EpiloguePacked: No39# CHECK-NEXT:       EpilogueScopes: 040# CHECK-NEXT:       ByteCodeLength: 441# CHECK-NEXT:       Prologue [42# CHECK-NEXT:         0xdc01              ; str d8, [sp, #8]43# CHECK-NEXT:         0xe4                ; end44# CHECK-NEXT:       ]45# CHECK-NEXT:       EpilogueScopes [46# CHECK-NEXT:       ]47# CHECK-NEXT:     }48# CHECK-NEXT:   }49# CHECK-NEXT:   RuntimeFunction {50# CHECK-NEXT:     Function: func3 (0x8)51# CHECK-NEXT:     ExceptionRecord: func3_xdata (0x10)52# CHECK-NEXT:     ExceptionData {53# CHECK-NEXT:       FunctionLength: 454# CHECK-NEXT:       Version: 055# CHECK-NEXT:       ExceptionData: No56# CHECK-NEXT:       EpiloguePacked: No57# CHECK-NEXT:       EpilogueScopes: 058# CHECK-NEXT:       ByteCodeLength: 459# CHECK-NEXT:       Prologue [60# CHECK-NEXT:         0xe1                ; mov fp, sp61# CHECK-NEXT:         0xe4                ; end62# CHECK-NEXT:       ]63# CHECK-NEXT:       EpilogueScopes [64# CHECK-NEXT:       ]65# CHECK-NEXT:     }66# CHECK-NEXT:   }67# CHECK-NEXT:   RuntimeFunction {68# CHECK-NEXT:     Function: func4 (0xC)69# CHECK-NEXT:     ExceptionRecord: func3_xdata +0x8 (0x18)70# CHECK-NEXT:     ExceptionData {71# CHECK-NEXT:       FunctionLength: 472# CHECK-NEXT:       Version: 073# CHECK-NEXT:       ExceptionData: No74# CHECK-NEXT:       EpiloguePacked: No75# CHECK-NEXT:       EpilogueScopes: 076# CHECK-NEXT:       ByteCodeLength: 477# CHECK-NEXT:       Prologue [78# CHECK-NEXT:         0x81                ; stp x29, x30, [sp, #-16]!79# CHECK-NEXT:         0xe4                ; end80# CHECK-NEXT:       ]81# CHECK-NEXT:       EpilogueScopes [82# CHECK-NEXT:       ]83# CHECK-NEXT:     }84# CHECK-NEXT:   }85# CHECK-NEXT: ]86 87--- !COFF88header:89  Machine:         IMAGE_FILE_MACHINE_ARM6490  Characteristics: [  ]91sections:92  - Name:            .text93    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]94    Alignment:       495    SectionData:     F38F1FF8E80700FDFD030091FD7BBFA996  - Name:            .xdata97    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]98    Alignment:       499    SectionData:     01000008D400E4E301000008DC01E4E301000008E1E4E3E30100000881E4E3E3100  - Name:            .pdata101    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]102    Alignment:       4103    SectionData:     '0000000000000000000000000800000000000000000000000000000008000000'104    Relocations:105      - VirtualAddress:  0106        SymbolName:      func107        Type:            IMAGE_REL_ARM64_ADDR32NB108      - VirtualAddress:  4109        SymbolName:      .xdata110        Type:            IMAGE_REL_ARM64_ADDR32NB111      - VirtualAddress:  8112        SymbolName:      func2113        Type:            IMAGE_REL_ARM64_ADDR32NB114      - VirtualAddress:  12115        SymbolName:      .xdata116        Type:            IMAGE_REL_ARM64_ADDR32NB117      - VirtualAddress:  16118        SymbolName:      func3119        Type:            IMAGE_REL_ARM64_ADDR32NB120      - VirtualAddress:  20121        SymbolName:      func3_xdata122        Type:            IMAGE_REL_ARM64_ADDR32NB123      - VirtualAddress:  24124        SymbolName:      func4125        Type:            IMAGE_REL_ARM64_ADDR32NB126      - VirtualAddress:  28127        SymbolName:      func3_xdata128        Type:            IMAGE_REL_ARM64_ADDR32NB129symbols:130  - Name:            .text131    Value:           0132    SectionNumber:   1133    SimpleType:      IMAGE_SYM_TYPE_NULL134    ComplexType:     IMAGE_SYM_DTYPE_NULL135    StorageClass:    IMAGE_SYM_CLASS_STATIC136    SectionDefinition:137      Length:          16138      NumberOfRelocations: 0139      NumberOfLinenumbers: 0140      CheckSum:        2581817939141      Number:          1142  - Name:            .xdata143    Value:           0144    SectionNumber:   2145    SimpleType:      IMAGE_SYM_TYPE_NULL146    ComplexType:     IMAGE_SYM_DTYPE_NULL147    StorageClass:    IMAGE_SYM_CLASS_STATIC148    SectionDefinition:149      Length:          32150      NumberOfRelocations: 0151      NumberOfLinenumbers: 0152      CheckSum:        3086971960153      Number:          2154  - Name:            .pdata155    Value:           0156    SectionNumber:   3157    SimpleType:      IMAGE_SYM_TYPE_NULL158    ComplexType:     IMAGE_SYM_DTYPE_NULL159    StorageClass:    IMAGE_SYM_CLASS_STATIC160    SectionDefinition:161      Length:          32162      NumberOfRelocations: 8163      NumberOfLinenumbers: 0164      CheckSum:        0165      Number:          3166  - Name:            func167    Value:           0168    SectionNumber:   1169    SimpleType:      IMAGE_SYM_TYPE_NULL170    ComplexType:     IMAGE_SYM_DTYPE_NULL171    StorageClass:    IMAGE_SYM_CLASS_STATIC172  - Name:            func2173    Value:           4174    SectionNumber:   1175    SimpleType:      IMAGE_SYM_TYPE_NULL176    ComplexType:     IMAGE_SYM_DTYPE_NULL177    StorageClass:    IMAGE_SYM_CLASS_STATIC178  - Name:            func3179    Value:           8180    SectionNumber:   1181    SimpleType:      IMAGE_SYM_TYPE_NULL182    ComplexType:     IMAGE_SYM_DTYPE_NULL183    StorageClass:    IMAGE_SYM_CLASS_STATIC184  - Name:            func4185    Value:           12186    SectionNumber:   1187    SimpleType:      IMAGE_SYM_TYPE_NULL188    ComplexType:     IMAGE_SYM_DTYPE_NULL189    StorageClass:    IMAGE_SYM_CLASS_STATIC190  - Name:            func3_xdata191    Value:           16192    SectionNumber:   2193    SimpleType:      IMAGE_SYM_TYPE_NULL194    ComplexType:     IMAGE_SYM_DTYPE_NULL195    StorageClass:    IMAGE_SYM_CLASS_STATIC196...197