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