brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · a3b04ed Raw
105 lines · plain
1# REQUIRES: x862# RUN: echo '.long 0; .comm common_uniq_0,4,4; .comm common_multiple,8,8' \3# RUN:   | llvm-mc -filetype=obj -triple=x86_64-unknown-linux - -o %tfile0.o4# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/common-filespec1.s -o %tfile1.o5# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/common-filespec2.s -o %tfile2.o6# RUN: ld.lld -o %t1 --script %s %tfile0.o %tfile1.o %tfile2.o7# RUN: llvm-readobj -S --symbols %t1 | FileCheck %s8 9SECTIONS {10  .common_0 : { *file0.o(COMMON) }11  .common_1 : { *file1.o(COMMON) }12  .common_2 : { *file2.o(COMMON) }13}14 15# Make sure all 3 sections are allocated and they have sizes and alignments16# corresponding to the commons assigned to them17# CHECK:       Section {18# CHECK:         Index:19# CHECK:         Name: .common_020# CHECK-NEXT:    Type: SHT_NOBITS21# CHECK-NEXT:    Flags [22# CHECK-NEXT:      SHF_ALLOC23# CHECK-NEXT:      SHF_WRITE24# CHECK-NEXT:    ]25# CHECK-NEXT:    Address: 0x426# CHECK-NEXT:    Offset: 0x27# CHECK-NEXT:    Size: 428# CHECK-NEXT:    Link: 029# CHECK-NEXT:    Info: 030# CHECK-NEXT:    AddressAlignment: 431# CHECK-NEXT:    EntrySize: 032# CHECK-NEXT:  }33# CHECK:       Section {34# CHECK:         Index:35# CHECK:         Name: .common_136# CHECK-NEXT:    Type: SHT_NOBITS37# CHECK-NEXT:    Flags [38# CHECK-NEXT:      SHF_ALLOC39# CHECK-NEXT:      SHF_WRITE40# CHECK-NEXT:    ]41# CHECK-NEXT:    Address: 0x842# CHECK-NEXT:    Offset: 0x43# CHECK-NEXT:    Size: 844# CHECK-NEXT:    Link: 045# CHECK-NEXT:    Info: 046# CHECK-NEXT:    AddressAlignment: 847# CHECK-NEXT:    EntrySize: 048# CHECK-NEXT:  }49# CHECK:       Section {50# CHECK:         Index:51# CHECK:         Name: .common_252# CHECK-NEXT:    Type: SHT_NOBITS53# CHECK-NEXT:    Flags [54# CHECK-NEXT:      SHF_ALLOC55# CHECK-NEXT:      SHF_WRITE56# CHECK-NEXT:    ]57# CHECK-NEXT:    Address: 0x1058# CHECK-NEXT:    Offset: 0x59# CHECK-NEXT:    Size: 4860# CHECK-NEXT:    Link: 061# CHECK-NEXT:    Info: 062# CHECK-NEXT:    AddressAlignment: 1663# CHECK-NEXT:    EntrySize: 064# CHECK-NEXT:  }65 66# Commons with unique name in each file must be assigned to that file's section.67# For a common with multiple definitions, the largest one wins and it must be68# assigned to the section from the file which provided the winning def69# CHECK:       Symbol {70# CHECK:         Name: common_uniq_071# CHECK-NEXT:    Value: 0x472# CHECK-NEXT:    Size: 473# CHECK-NEXT:    Binding: Global74# CHECK-NEXT:    Type: Object75# CHECK-NEXT:    Other: 076# CHECK-NEXT:    Section: .common_077# CHECK-NEXT:  }78# CHECK:       Symbol {79# CHECK:         Name: common_multiple80# CHECK-NEXT:    Value: 0x1081# CHECK-NEXT:    Size: 3282# CHECK-NEXT:    Binding: Global83# CHECK-NEXT:    Type: Object84# CHECK-NEXT:    Other: 085# CHECK-NEXT:    Section: .common_286# CHECK-NEXT:  }87# CHECK:       Symbol {88# CHECK:         Name: common_uniq_189# CHECK-NEXT:    Value: 0x890# CHECK-NEXT:    Size: 891# CHECK-NEXT:    Binding: Global92# CHECK-NEXT:    Type: Object93# CHECK-NEXT:    Other: 094# CHECK-NEXT:    Section: .common_195# CHECK-NEXT:  }96# CHECK:       Symbol {97# CHECK:         Name: common_uniq_298# CHECK-NEXT:    Value: 0x3099# CHECK-NEXT:    Size: 16100# CHECK-NEXT:    Binding: Global101# CHECK-NEXT:    Type: Object102# CHECK-NEXT:    Other: 0103# CHECK-NEXT:    Section: .common_2104# CHECK-NEXT:  }105