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