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