| ## Show that llvm-sizes works correctly on a typical ELF input for Berkeley |
| ## format. It also shows that the formatting is correct (including using tabs as |
| ## field separators). |
| |
| # RUN: yaml2obj %s -o %t.o |
| |
| # RUN: llvm-size -B %t.o \ |
| # RUN: | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}} |
| # RUN: llvm-size --format=berkeley %t.o \ |
| # RUN: | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}} |
| |
| ## Also show that the default output format is Berkeley. |
| # RUN: llvm-size %t.o \ |
| # RUN: | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}} |
| |
| ## text is .text, .eh_frame, .unusual_name_for_code: 2 + 4 + 64 = 70 |
| ## data is .data, .init_array, .moar_stuff: 8 + 32 + 128 = 168 |
| ## bss is .bss: 1 |
| ## total: 239 |
| ## unaccounted for (not affecting total) is .debug_info, .text.but_not_really |
| # CHECK: text data bss dec hex filename |
| # CHECK-NEXT: 70 168 1 239 ef [[FILE]] |
| |
| !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .bss |
| Type: SHT_NOBITS |
| Flags: [ SHF_ALLOC, SHF_WRITE ] |
| Size: 1 |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Size: 2 |
| - Name: .unusual_name_for_code |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Size: 64 |
| - Name: .eh_frame |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| Size: 4 |
| - Name: .data |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_WRITE ] |
| Size: 8 |
| - Name: .moar_stuff |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_WRITE ] |
| Size: 128 |
| - Name: .text.but_not_really |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| Size: 256 |
| - Name: .debug_info |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| Size: 16 |
| - Name: .init_array |
| Type: SHT_INIT_ARRAY |
| Flags: [ SHF_ALLOC, SHF_WRITE ] |
| Size: 32 |