common.test 1.29 KB
## Check that with the common switch common symbols are added to bss (Berkeley
## output) or shown as *COM* (sysv output). Otherwise their size is ignored.

# RUN: yaml2obj %s -o %t.o
# RUN: llvm-size -A --common %t.o | FileCheck --check-prefix=SYSV %s
# RUN: llvm-size -B --common %t.o | FileCheck --check-prefix=BSD %s
# RUN: llvm-size -A %t.o | FileCheck --check-prefix=SYSVNOCOMM %s
# RUN: llvm-size -B %t.o | FileCheck --check-prefix=BSDNOCOMM %s

# SYSV:      {{.*}}.o  :
# SYSV-NEXT: section     size   addr
# SYSV-NEXT: .text          0      0
# SYSV-NEXT: *COM*          8      0
# SYSV-NEXT: Total          8

# SYSVNOCOMM:      {{.*}}.o  :
# SYSVNOCOMM-NEXT: section     size   addr
# SYSVNOCOMM-NEXT: .text          0      0
# SYSVNOCOMM-NEXT: Total          0

# BSD:      text    data     bss     dec     hex filename
# BSD-NEXT:    0       0       8       8       8 {{.*}}.o

# BSDNOCOMM:      text    data     bss     dec     hex filename
# BSDNOCOMM-NEXT:    0       0       0       0       0 {{.*}}.o

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:  y
    Type:  STT_OBJECT
    Size:  4
    Index: SHN_COMMON
  - Name:  z
    Type:  STT_OBJECT
    Size:  4
    Index: SHN_COMMON