## Show the disassembly behaviour when dynamic symbols are present. # RUN: yaml2obj %s -o %t ## Case 1: Both static and dynamic symbols are present. Only static ## symbols are displayed. # RUN: llvm-objdump -d %t | FileCheck %s --check-prefixes=CHECK,STATIC ## Case 2: Only the dynamic symbols are present. These should be displayed, if ## they meet the necessary criteria. # RUN: llvm-objcopy --strip-all %t %t2 # RUN: llvm-objdump -d %t2 | FileCheck %s --check-prefixes=CHECK,DYN # CHECK: Disassembly of section .text: # CHECK-EMPTY: # STATIC-NEXT: 0000000000001000 <.text>: # DYN-NEXT: 0000000000001000 <only_dyn>: # CHECK-NEXT: 1000: # CHECK-EMPTY: # STATIC-NEXT: 0000000000001001 <both_static>: # DYN-NEXT: 0000000000001001 <both_dyn>: # CHECK-NEXT: 1001: # STATIC-EMPTY: # STATIC-NEXT: 0000000000001002 <only_static>: # CHECK-NEXT: 1002: # DYN-EMPTY: # DYN-NEXT: 0000000000001003 <object>: # CHECK-NEXT: 1003: # DYN-EMPTY: # DYN-NEXT: 0000000000001004 <zero_sized>: # CHECK-NEXT: 1004: # DYN-EMPTY: # DYN-NEXT: 0000000000001005 <common>: # CHECK-NEXT: 1005: # DYN-EMPTY: # DYN-NEXT: 0000000000001006 <loos>: # CHECK-NEXT: 1006: # DYN-EMPTY: # DYN-NEXT: 0000000000001007 <loproc>: # CHECK-NEXT: 1007: # CHECK-NEXT: 1008: # CHECK-NEXT: 1009: # CHECK-NEXT: 100a: # CHECK-NEXT: 100b:{{.*}} # CHECK-NOT: {{.}} --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_DYN Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS Flags: [SHF_ALLOC, SHF_EXECINSTR] Address: 0x1000 Content: 909090909090909090909090 ProgramHeaders: - Type: PT_LOAD VAddr: 0x1000 FirstSec: .text LastSec: .text Symbols: - Name: both_static Value: 0x1001 Section: .text Binding: STB_GLOBAL - Name: only_static Value: 0x1002 Section: .text Binding: STB_GLOBAL DynamicSymbols: - Name: only_dyn Value: 0x1000 Section: .text Size: 1 Type: STT_FUNC Binding: STB_GLOBAL - Name: both_dyn Value: 0x1001 Section: .text Size: 1 Type: STT_NOTYPE Binding: STB_GLOBAL - Name: object Value: 0x1003 Section: .text Size: 1 Type: STT_OBJECT Binding: STB_GLOBAL - Name: zero_sized Value: 0x1004 Section: .text Type: STT_FUNC Binding: STB_GLOBAL - Name: common Value: 0x1005 Section: .text Size: 1 Type: STT_COMMON Binding: STB_GLOBAL - Name: loos Value: 0x1006 Section: .text Size: 1 Type: 10 Binding: STB_GLOBAL - Name: loproc Value: 0x1007 Section: .text Size: 1 Type: 13 Binding: STB_GLOBAL ## The rest of the dynamic symbols won't be used for various reasons. - Name: section Value: 0x1008 Section: .text Size: 1 Type: STT_SECTION Binding: STB_GLOBAL - Name: '' # No name Value: 0x1009 Section: .text Size: 1 Type: STT_FUNC Binding: STB_GLOBAL - Name: absolute Value: 0x100a Index: SHN_ABS Size: 1 Type: STT_FUNC Binding: STB_GLOBAL - Name: undefined Value: 0x100b Index: SHN_UNDEF Size: 1 Type: STT_FUNC Binding: STB_GLOBAL