## 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