| // 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: } |