brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · bcffd40 Raw
202 lines · plain
1## This test checks how we handle the --bb-addr-map option.2 3## Check 64-bit:4# RUN: yaml2obj --docnum=1 %s -DBITS=64 -DADDR=0x999999999 -o %t1.x64.o5# RUN: llvm-readobj %t1.x64.o --bb-addr-map 2>&1 | FileCheck %s -DADDR=0x999999999 -DFILE=%t1.x64.o --check-prefix=CHECK6# RUN: llvm-readelf %t1.x64.o --bb-addr-map | FileCheck %s --check-prefix=GNU7 8## Check 64-bit:9# RUN: yaml2obj --docnum=1 %s -DBITS=64 -DADDR=0x999999999 -o %t1.v1.x64.o10# RUN: llvm-readobj %t1.v1.x64.o --bb-addr-map 2>&1 | FileCheck %s -DADDR=0x999999999 -DFILE=%t1.v1.x64.o --check-prefix=CHECK11 12## Check 32-bit:13# RUN: yaml2obj --docnum=1 %s -DBITS=32 -o %t1.x32.o14# RUN: llvm-readobj %t1.x32.o --bb-addr-map 2>&1 | FileCheck -DADDR=0x11111 %s -DFILE=%t1.x32.o --check-prefix=CHECK15# RUN: llvm-readelf %t1.x32.o --bb-addr-map | FileCheck %s --check-prefix=GNU16 17## Check that a malformed section can be handled.18# RUN: yaml2obj --docnum=1 %s -DBITS=32 -DSIZE=7 -o %t2.o19# RUN: llvm-readobj %t2.o --bb-addr-map 2>&1 | FileCheck %s -DOFFSET=0x00000007 -DFILE=%t2.o --check-prefix=TRUNCATED20 21## Check that invalid metadata can be handled.22# RUN: yaml2obj --docnum=1 %s -DBITS=32 -DMETADATA=0xF000002 -o %t3.o23# RUN: llvm-readobj %t3.o --bb-addr-map 2>&1 | FileCheck %s -DFILE=%t3.o --check-prefix=INVALIDMD24 25# CHECK:      BBAddrMap [26# CHECK-NEXT:   Function {27# CHECK-NEXT:     At: [[ADDR]]28# CHECK-NEXT: warning: '[[FILE]]': could not identify function symbol for address ([[ADDR]]) in SHT_LLVM_BB_ADDR_MAP section with index 329# CHECK-NEXT:     Name: <?>30# CHECK-NEXT:     BB Ranges [31# CHECK-NEXT:       {32# CHECK-NEXT:         Base Address: [[ADDR]]33# CHECK-NEXT:         BB Entries [34# CHECK-NEXT:           {35# CHECK-NEXT:             ID: 036# CHECK-NEXT:             Offset: 0x037# CHECK-NEXT:             Hash: 0x038# CHECK-NEXT:             Size: 0x139# CHECK-NEXT:             HasReturn: No40# CHECK-NEXT:             HasTailCall: Yes41# CHECK-NEXT:             IsEHPad: No42# CHECK-NEXT:             CanFallThrough: No43# CHECK-NEXT:             HasIndirectBranch: No44# CHECK-NEXT:           }45# CHECK-NEXT:         ]46# CHECK-NEXT:       }47# CHECK-NEXT:       {48# CHECK-NEXT:         Base Address: 0x4444449# CHECK-NEXT:         BB Entries [50# CHECK-NEXT:           {51# CHECK-NEXT:             ID: 252# CHECK-NEXT:             Offset: 0x353# CHECK-NEXT:             Callsite End Offsets: [1, 3]54# CHECK-NEXT:             Hash: 0x12355# CHECK-NEXT:             Size: 0x756# CHECK-NEXT:             HasReturn: Yes57# CHECK-NEXT:             HasTailCall: No58# CHECK-NEXT:             IsEHPad: Yes59# CHECK-NEXT:             CanFallThrough: No60# CHECK-NEXT:             HasIndirectBranch: Yes61# CHECK-NEXT:           }62# CHECK-NEXT:         ]63# CHECK-NEXT:       }64# CHECK-NEXT:     ]65# CHECK-NEXT:   }66# CHECK-NEXT:   Function {67# CHECK-NEXT:     At: 0x2222268# CHECK-NEXT:     Name: foo69# CHECK-NEXT:     BB Ranges [70# CHECK-NEXT:       {71# CHECK-NEXT:         Base Address: 0x2222272# CHECK-NEXT:         BB Entries [73# CHECK-NEXT:           {74# CHECK-NEXT:             ID: 475# CHECK-NEXT:             Offset: 0x676# CHECK-NEXT:             Size: 0x777# CHECK-NEXT:             HasReturn: No78# CHECK-NEXT:             HasTailCall: No79# CHECK-NEXT:             IsEHPad: No80# CHECK-NEXT:             CanFallThrough: Yes81# CHECK-NEXT:             HasIndirectBranch: No82# CHECK-NEXT:           }83# CHECK-NEXT:         ]84# CHECK-NEXT:       }85# CHECK-NEXT:     ]86# CHECK-NEXT:   }87# CHECK-NEXT: ]88 89# GNU: GNUStyle::printBBAddrMaps not implemented90 91# TRUNCATED:      BBAddrMap [92# TRUNCATED-NEXT:   warning: '[[FILE]]': unable to dump SHT_LLVM_BB_ADDR_MAP section with index 3: unable to decode LEB128 at offset [[OFFSET]]: malformed uleb128, extends past end93# TRUNCATED-NEXT: ]94## Check that the other valid section is properly dumped.95# TRUNCATED-NEXT: BBAddrMap [96# TRUNCATED-NEXT:   Function {97# TRUNCATED-NEXT:     At: 0x3333398# TRUNCATED-NEXT:     Name: bar99# TRUNCATED-NEXT:     BB Ranges [100# TRUNCATED-NEXT:       {101# TRUNCATED-NEXT:         Base Address: 0x33333102# TRUNCATED-NEXT:         BB Entries [103# TRUNCATED-NEXT:           {104# TRUNCATED-NEXT:             ID: 6105# TRUNCATED-NEXT:             Offset: 0x9106# TRUNCATED-NEXT:             Size: 0xA107# TRUNCATED-NEXT:             HasReturn: Yes108# TRUNCATED-NEXT:             HasTailCall: Yes109# TRUNCATED-NEXT:             IsEHPad: No110# TRUNCATED-NEXT:             CanFallThrough: Yes111# TRUNCATED-NEXT:             HasIndirectBranch: Yes112# TRUNCATED-NEXT:           }113# TRUNCATED-NEXT:           {114# TRUNCATED-NEXT:             ID: 7115# TRUNCATED-NEXT:             Offset: 0x1F116# TRUNCATED-NEXT:             Size: 0xD117# TRUNCATED-NEXT:             HasReturn: No118# TRUNCATED-NEXT:             HasTailCall: Yes119# TRUNCATED-NEXT:             IsEHPad: Yes120# TRUNCATED-NEXT:             CanFallThrough: Yes121# TRUNCATED-NEXT:             HasIndirectBranch: No122# TRUNCATED-NEXT:           }123# TRUNCATED-NEXT:         ]124# TRUNCATED-NEXT:       }125# TRUNCATED-NEXT:     ]126# TRUNCATED-NEXT:   }127# TRUNCATED-NEXT: ]128 129# INVALIDMD:      BBAddrMap [130# INVALIDMD-NEXT:   warning: '[[FILE]]': unable to dump SHT_LLVM_BB_ADDR_MAP section with index 3: invalid encoding for BBEntry::Metadata: 0xf000002131 132--- !ELF133FileHeader:134  Class: ELFCLASS[[BITS]]135  Data:  ELFDATA2LSB136  Type:  ET_EXEC137Sections:138  - Name:   .text139    Type:   SHT_PROGBITS140    Flags:  [SHF_ALLOC]141  - Name:   .text.bar142    Type:   SHT_PROGBITS143    Flags:  [SHF_ALLOC]144  - Name:   .llvm_bb_addr_map145    Type:   SHT_LLVM_BB_ADDR_MAP146    ShSize: [[SIZE=<none>]]147    Link:   .text148    Entries:149      - Version: 4150        Feature: 0x68151        BBRanges:152          - BaseAddress: [[ADDR=0x11111]]153            BBEntries:154              - ID:            0155                AddressOffset: 0x0156                Size:          0x1157                Metadata:      [[METADATA=0x2]]158          - BaseAddress: 0x44444159            BBEntries:160              - ID:            2161                AddressOffset: 0x3162                Size:          0x4163                Metadata:      0x15164                CallsiteEndOffsets: [ 0x1 , 0x2 ]165                Hash:          0x123166      - Version: 2167        BBRanges:168          - BaseAddress: 0x22222169            BBEntries:170              - ID:            4171                AddressOffset: 0x6172                Size:          0x7173                Metadata:      0x8174  - Name: dummy_section175    Type: SHT_PROGBITS176    Size: 16177  - Name: '.llvm_bb_addr_map (1)'178    Type: SHT_LLVM_BB_ADDR_MAP179    Link: .text.bar180    Entries:181      - Version: 2182        BBRanges:183          - BaseAddress: 0x33333184            BBEntries:185              - ID:            6186                AddressOffset: 0x9187                Size:          0xa188                Metadata:      0x1b189              - ID:            7190                AddressOffset: 0xc191                Size:          0xd192                Metadata:      0xe193Symbols:194  - Name:    foo195    Section: .text196    Type:    STT_FUNC197    Value:   0x22222198  - Name:    bar199    Section: .text.bar200    Type:    STT_FUNC201    Value:   0x33333202