1*9880d681SAndroid Build Coastguard Worker// Test section manipulation via .linkonce directive. 2*9880d681SAndroid Build Coastguard Worker// 3*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s 4*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker.section s1 7*9880d681SAndroid Build Coastguard Worker.linkonce 8*9880d681SAndroid Build Coastguard Worker.long 1 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker.section s2 11*9880d681SAndroid Build Coastguard Worker.linkonce one_only 12*9880d681SAndroid Build Coastguard Worker.long 1 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker.section s3 15*9880d681SAndroid Build Coastguard Worker.linkonce discard 16*9880d681SAndroid Build Coastguard Worker.long 1 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker.section s4 19*9880d681SAndroid Build Coastguard Worker.linkonce same_size 20*9880d681SAndroid Build Coastguard Worker.long 1 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker.section s5 23*9880d681SAndroid Build Coastguard Worker.linkonce same_contents 24*9880d681SAndroid Build Coastguard Worker.long 1 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker.section s6 27*9880d681SAndroid Build Coastguard Worker.long 1 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker.section s7 30*9880d681SAndroid Build Coastguard Worker.linkonce largest 31*9880d681SAndroid Build Coastguard Worker.long 1 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker.section s8 34*9880d681SAndroid Build Coastguard Worker.linkonce newest 35*9880d681SAndroid Build Coastguard Worker.long 1 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker.section .foo$bar 38*9880d681SAndroid Build Coastguard Worker.linkonce discard 39*9880d681SAndroid Build Coastguard Worker.long 1 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker// CHECK: Sections [ 43*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 44*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s1 45*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 46*9880d681SAndroid Build Coastguard Worker// CHECK: IMAGE_SCN_LNK_COMDAT 47*9880d681SAndroid Build Coastguard Worker// CHECK: ] 48*9880d681SAndroid Build Coastguard Worker// CHECK: } 49*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 50*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s2 51*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 52*9880d681SAndroid Build Coastguard Worker// CHECK: IMAGE_SCN_LNK_COMDAT 53*9880d681SAndroid Build Coastguard Worker// CHECK: ] 54*9880d681SAndroid Build Coastguard Worker// CHECK: } 55*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 56*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s3 57*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 58*9880d681SAndroid Build Coastguard Worker// CHECK: IMAGE_SCN_LNK_COMDAT 59*9880d681SAndroid Build Coastguard Worker// CHECK: ] 60*9880d681SAndroid Build Coastguard Worker// CHECK: } 61*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 62*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s4 63*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 64*9880d681SAndroid Build Coastguard Worker// CHECK: IMAGE_SCN_LNK_COMDAT 65*9880d681SAndroid Build Coastguard Worker// CHECK: ] 66*9880d681SAndroid Build Coastguard Worker// CHECK: } 67*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 68*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s5 69*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 70*9880d681SAndroid Build Coastguard Worker// CHECK: IMAGE_SCN_LNK_COMDAT 71*9880d681SAndroid Build Coastguard Worker// CHECK: ] 72*9880d681SAndroid Build Coastguard Worker// CHECK: } 73*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 74*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s6 75*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 76*9880d681SAndroid Build Coastguard Worker// CHECK: ] 77*9880d681SAndroid Build Coastguard Worker// CHECK: } 78*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 79*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s7 80*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 81*9880d681SAndroid Build Coastguard Worker// CHECK: IMAGE_SCN_LNK_COMDAT 82*9880d681SAndroid Build Coastguard Worker// CHECK: ] 83*9880d681SAndroid Build Coastguard Worker// CHECK: } 84*9880d681SAndroid Build Coastguard Worker// CHECK: Section { 85*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s8 86*9880d681SAndroid Build Coastguard Worker// CHECK: Characteristics [ 87*9880d681SAndroid Build Coastguard Worker// CHECK: IMAGE_SCN_LNK_COMDAT 88*9880d681SAndroid Build Coastguard Worker// CHECK: ] 89*9880d681SAndroid Build Coastguard Worker// CHECK: } 90*9880d681SAndroid Build Coastguard Worker// CHECK: ] 91*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [ 92*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 93*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s1 94*9880d681SAndroid Build Coastguard Worker// CHECK: Section: s1 (4) 95*9880d681SAndroid Build Coastguard Worker// CHECK: AuxSectionDef { 96*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 4 97*9880d681SAndroid Build Coastguard Worker// CHECK: Selection: Any (0x2) 98*9880d681SAndroid Build Coastguard Worker// CHECK: } 99*9880d681SAndroid Build Coastguard Worker// CHECK: } 100*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 101*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s2 102*9880d681SAndroid Build Coastguard Worker// CHECK: Section: s2 (5) 103*9880d681SAndroid Build Coastguard Worker// CHECK: AuxSectionDef { 104*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 5 105*9880d681SAndroid Build Coastguard Worker// CHECK: Selection: NoDuplicates (0x1) 106*9880d681SAndroid Build Coastguard Worker// CHECK: } 107*9880d681SAndroid Build Coastguard Worker// CHECK: } 108*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 109*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s3 110*9880d681SAndroid Build Coastguard Worker// CHECK: Section: s3 (6) 111*9880d681SAndroid Build Coastguard Worker// CHECK: AuxSectionDef { 112*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 6 113*9880d681SAndroid Build Coastguard Worker// CHECK: Selection: Any (0x2) 114*9880d681SAndroid Build Coastguard Worker// CHECK: } 115*9880d681SAndroid Build Coastguard Worker// CHECK: } 116*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 117*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s4 118*9880d681SAndroid Build Coastguard Worker// CHECK: Section: s4 (7) 119*9880d681SAndroid Build Coastguard Worker// CHECK: AuxSectionDef { 120*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 7 121*9880d681SAndroid Build Coastguard Worker// CHECK: Selection: SameSize (0x3) 122*9880d681SAndroid Build Coastguard Worker// CHECK: } 123*9880d681SAndroid Build Coastguard Worker// CHECK: } 124*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 125*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s5 126*9880d681SAndroid Build Coastguard Worker// CHECK: Section: s5 (8) 127*9880d681SAndroid Build Coastguard Worker// CHECK: AuxSectionDef { 128*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 8 129*9880d681SAndroid Build Coastguard Worker// CHECK: Selection: ExactMatch (0x4) 130*9880d681SAndroid Build Coastguard Worker// CHECK: } 131*9880d681SAndroid Build Coastguard Worker// CHECK: } 132*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 133*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s6 134*9880d681SAndroid Build Coastguard Worker// CHECK: } 135*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 136*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s7 137*9880d681SAndroid Build Coastguard Worker// CHECK: Section: s7 (10) 138*9880d681SAndroid Build Coastguard Worker// CHECK: AuxSectionDef { 139*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 10 140*9880d681SAndroid Build Coastguard Worker// CHECK: Selection: Largest (0x6) 141*9880d681SAndroid Build Coastguard Worker// CHECK: } 142*9880d681SAndroid Build Coastguard Worker// CHECK: } 143*9880d681SAndroid Build Coastguard Worker// CHECK: Symbol { 144*9880d681SAndroid Build Coastguard Worker// CHECK: Name: s8 145*9880d681SAndroid Build Coastguard Worker// CHECK: Section: s8 (11) 146*9880d681SAndroid Build Coastguard Worker// CHECK: AuxSectionDef { 147*9880d681SAndroid Build Coastguard Worker// CHECK: Number: 11 148*9880d681SAndroid Build Coastguard Worker// CHECK: Selection: Newest (0x7) 149*9880d681SAndroid Build Coastguard Worker// CHECK: } 150*9880d681SAndroid Build Coastguard Worker// CHECK: } 151