## Show that llvm-size prints sizes in different radixes when requested.
# RUN: yaml2obj %s --docnum=1 -o %t1.o
# RUN: yaml2obj %s --docnum=2 -o %t2.o
## Case 1: Octal radix (Berkeley).
# RUN: llvm-size %t1.o %t2.o --totals -B --radix=8 \
# RUN: | FileCheck %s --check-prefix=OCT-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o --totals -B -o \
# RUN: | FileCheck %s --check-prefix=OCT-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# OCT-BERK: text data bss oct hex filename
# OCT-BERK-NEXT: 01 02 04 7 7 [[FILE1]]
# OCT-BERK-NEXT: 010 020 040 70 38 [[FILE2]]
# OCT-BERK-NEXT: 011 022 044 77 3f (TOTALS)
## Case 2: Decimal radix (Berkeley).
# RUN: llvm-size %t1.o %t2.o --totals -B --radix=10 \
# RUN: | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o --totals -B -d \
# RUN: | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# DEC-BERK: text data bss dec hex filename
# DEC-BERK-NEXT: 1 2 4 7 7 [[FILE1]]
# DEC-BERK-NEXT: 8 16 32 56 38 [[FILE2]]
# DEC-BERK-NEXT: 9 18 36 63 3f (TOTALS)
## Case 3: Hexadecimal radix (Berkeley).
# RUN: llvm-size %t1.o %t2.o --totals -B --radix=16 \
# RUN: | FileCheck %s --check-prefix=HEX-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o --totals -B -x \
# RUN: | FileCheck %s --check-prefix=HEX-BERK -DFILE1=%t1.o -DFILE2=%t2.o
# HEX-BERK: text data bss dec hex filename
# HEX-BERK-NEXT: 0x1 0x2 0x4 7 7 [[FILE1]]
# HEX-BERK-NEXT: 0x8 0x10 0x20 56 38 [[FILE2]]
# HEX-BERK-NEXT: 0x9 0x12 0x24 63 3f (TOTALS)
## Case 4: Octal radix (sysv).
# RUN: llvm-size %t1.o %t2.o -A --radix=8 \
# RUN: | FileCheck %s --check-prefix=OCT-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o -A -o \
# RUN: | FileCheck %s --check-prefix=OCT-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# OCT-SYSV: [[FILE1]] :
# OCT-SYSV-NEXT: section size addr
# OCT-SYSV-NEXT: .text 01 04
# OCT-SYSV-NEXT: .data 02 02
# OCT-SYSV-NEXT: .bss 04 01
# OCT-SYSV-NEXT: Total 07
# OCT-SYSV-EMPTY:
# OCT-SYSV-EMPTY:
# OCT-SYSV-NEXT: [[FILE2]] :
# OCT-SYSV-NEXT: section size addr
# OCT-SYSV-NEXT: .blob 010 040
# OCT-SYSV-NEXT: .blab 020 020
# OCT-SYSV-NEXT: .blib 040 010
# OCT-SYSV-NEXT: Total 070
## Case 5: Decimal radix (sysv).
# RUN: llvm-size %t1.o %t2.o -A --radix=10 \
# RUN: | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o -A -d \
# RUN: | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# DEC-SYSV: [[FILE1]] :
# DEC-SYSV-NEXT: section size addr
# DEC-SYSV-NEXT: .text 1 4
# DEC-SYSV-NEXT: .data 2 2
# DEC-SYSV-NEXT: .bss 4 1
# DEC-SYSV-NEXT: Total 7
# DEC-SYSV-EMPTY:
# DEC-SYSV-EMPTY:
# DEC-SYSV-NEXT: [[FILE2]] :
# DEC-SYSV-NEXT: section size addr
# DEC-SYSV-NEXT: .blob 8 32
# DEC-SYSV-NEXT: .blab 16 16
# DEC-SYSV-NEXT: .blib 32 8
# DEC-SYSV-NEXT: Total 56
## Case 6: Hexadecimal radix (sysv).
# RUN: llvm-size %t1.o %t2.o -A --radix=16 \
# RUN: | FileCheck %s --check-prefix=HEX-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# RUN: llvm-size %t1.o %t2.o -A -x \
# RUN: | FileCheck %s --check-prefix=HEX-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
# HEX-SYSV: [[FILE1]] :
# HEX-SYSV-NEXT: section size addr
# HEX-SYSV-NEXT: .text 0x1 0x4
# HEX-SYSV-NEXT: .data 0x2 0x2
# HEX-SYSV-NEXT: .bss 0x4 0x1
# HEX-SYSV-NEXT: Total 0x7
# HEX-SYSV-EMPTY:
# HEX-SYSV-EMPTY:
# HEX-SYSV-NEXT: [[FILE2]] :
# HEX-SYSV-NEXT: section size addr
# HEX-SYSV-NEXT: .blob 0x8 0x20
# HEX-SYSV-NEXT: .blab 0x10 0x10
# HEX-SYSV-NEXT: .blib 0x20 0x8
# HEX-SYSV-NEXT: Total 0x38
## Case 7: Default Berkeley is decimal.
# RUN: llvm-size %t1.o %t2.o --totals -B \
# RUN: | FileCheck %s --check-prefix=DEC-BERK -DFILE1=%t1.o -DFILE2=%t2.o
## Case 8: Default sysv is decimal.
# RUN: llvm-size %t1.o %t2.o -A \
# RUN: | FileCheck %s --check-prefix=DEC-SYSV -DFILE1=%t1.o -DFILE2=%t2.o
## Case 9: Bad values.
# RUN: not llvm-size %t1.o --radix=0 2>&1 \
# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=0
# RUN: not llvm-size %t1.o --radix=1 2>&1 \
# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=1
# RUN: not llvm-size %t1.o --radix=2 2>&1 \
# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=2
# RUN: not llvm-size %t1.o --radix=32 2>&1 \
# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=32
# RUN: not llvm-size %t1.o --radix=-1 2>&1 \
# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=-1
# RUN: not llvm-size %t1.o --radix=bad 2>&1 \
# RUN: | FileCheck %s --check-prefix=BAD-VAL -DNUM=bad
# BAD-VAL: {{.*}}llvm-size{{.*}}: error: --radix value should be one of: 8, 10, 16
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [SHF_ALLOC, SHF_EXECINSTR]
Size: 1
Address: 4
- Name: .data
Type: SHT_PROGBITS
Flags: [SHF_ALLOC, SHF_WRITE]
Size: 2
Address: 2
- Name: .bss
Type: SHT_NOBITS
Flags: [SHF_ALLOC, SHF_WRITE]
Size: 4
Address: 1
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .blob
Type: SHT_PROGBITS
Flags: [SHF_ALLOC, SHF_EXECINSTR]
Size: 8
Address: 32
- Name: .blab
Type: SHT_PROGBITS
Flags: [SHF_ALLOC, SHF_WRITE]
Size: 16
Address: 16
- Name: .blib
Type: SHT_NOBITS
Flags: [SHF_ALLOC, SHF_WRITE]
Size: 32
Address: 8