| // Test section manipulation via .linkonce directive. |
| // |
| // RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s |
| // RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s |
| |
| .section s1 |
| .linkonce |
| .long 1 |
| |
| .section s2 |
| .linkonce one_only |
| .long 1 |
| |
| .section s3 |
| .linkonce discard |
| .long 1 |
| |
| .section s4 |
| .linkonce same_size |
| .long 1 |
| |
| .section s5 |
| .linkonce same_contents |
| .long 1 |
| |
| .section s6 |
| .long 1 |
| |
| .section s7 |
| .linkonce largest |
| .long 1 |
| |
| .section s8 |
| .linkonce newest |
| .long 1 |
| |
| .section .foo$bar |
| .linkonce discard |
| .long 1 |
| |
| |
| // CHECK: Sections [ |
| // CHECK: Section { |
| // CHECK: Name: s1 |
| // CHECK: Characteristics [ |
| // CHECK: IMAGE_SCN_LNK_COMDAT |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: Section { |
| // CHECK: Name: s2 |
| // CHECK: Characteristics [ |
| // CHECK: IMAGE_SCN_LNK_COMDAT |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: Section { |
| // CHECK: Name: s3 |
| // CHECK: Characteristics [ |
| // CHECK: IMAGE_SCN_LNK_COMDAT |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: Section { |
| // CHECK: Name: s4 |
| // CHECK: Characteristics [ |
| // CHECK: IMAGE_SCN_LNK_COMDAT |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: Section { |
| // CHECK: Name: s5 |
| // CHECK: Characteristics [ |
| // CHECK: IMAGE_SCN_LNK_COMDAT |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: Section { |
| // CHECK: Name: s6 |
| // CHECK: Characteristics [ |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: Section { |
| // CHECK: Name: s7 |
| // CHECK: Characteristics [ |
| // CHECK: IMAGE_SCN_LNK_COMDAT |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: Section { |
| // CHECK: Name: s8 |
| // CHECK: Characteristics [ |
| // CHECK: IMAGE_SCN_LNK_COMDAT |
| // CHECK: ] |
| // CHECK: } |
| // CHECK: ] |
| // CHECK: Symbols [ |
| // CHECK: Symbol { |
| // CHECK: Name: s1 |
| // CHECK: Section: s1 (4) |
| // CHECK: AuxSectionDef { |
| // CHECK: Number: 4 |
| // CHECK: Selection: Any (0x2) |
| // CHECK: } |
| // CHECK: } |
| // CHECK: Symbol { |
| // CHECK: Name: s2 |
| // CHECK: Section: s2 (5) |
| // CHECK: AuxSectionDef { |
| // CHECK: Number: 5 |
| // CHECK: Selection: NoDuplicates (0x1) |
| // CHECK: } |
| // CHECK: } |
| // CHECK: Symbol { |
| // CHECK: Name: s3 |
| // CHECK: Section: s3 (6) |
| // CHECK: AuxSectionDef { |
| // CHECK: Number: 6 |
| // CHECK: Selection: Any (0x2) |
| // CHECK: } |
| // CHECK: } |
| // CHECK: Symbol { |
| // CHECK: Name: s4 |
| // CHECK: Section: s4 (7) |
| // CHECK: AuxSectionDef { |
| // CHECK: Number: 7 |
| // CHECK: Selection: SameSize (0x3) |
| // CHECK: } |
| // CHECK: } |
| // CHECK: Symbol { |
| // CHECK: Name: s5 |
| // CHECK: Section: s5 (8) |
| // CHECK: AuxSectionDef { |
| // CHECK: Number: 8 |
| // CHECK: Selection: ExactMatch (0x4) |
| // CHECK: } |
| // CHECK: } |
| // CHECK: Symbol { |
| // CHECK: Name: s6 |
| // CHECK: } |
| // CHECK: Symbol { |
| // CHECK: Name: s7 |
| // CHECK: Section: s7 (10) |
| // CHECK: AuxSectionDef { |
| // CHECK: Number: 10 |
| // CHECK: Selection: Largest (0x6) |
| // CHECK: } |
| // CHECK: } |
| // CHECK: Symbol { |
| // CHECK: Name: s8 |
| // CHECK: Section: s8 (11) |
| // CHECK: AuxSectionDef { |
| // CHECK: Number: 11 |
| // CHECK: Selection: Newest (0x7) |
| // CHECK: } |
| // CHECK: } |