1// RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s | FileCheck %s 2// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s | FileCheck %s 3 4.section .foo$bar; .long 1 5.section .foo@bar; .long 1 6.section ABCDEFGHIJKLMNOPQRSTUVWXYZ; .long 1 7.section abcdefghijklmnopqrstuvwxyz; .long 1 8.section _0123456789; .long 1 9 10// CHECK: Sections [ 11// CHECK: Section { 12// CHECK: Name: .foo$bar 13// CHECK: } 14// CHECK: Section { 15// CHECK: Name: .foo@bar 16// CHECK: } 17// CHECK: Section { 18// CHECK: Name: ABCDEFGHIJKLMNOPQRSTUVWXYZ 19// CHECK: } 20// CHECK: Section { 21// CHECK: Name: abcdefghijklmnopqrstuvwxyz 22// CHECK: } 23// CHECK: Section { 24// CHECK: Name: _0123456789 25// CHECK: } 26 27// Test that the defaults are used 28.section s ; .long 1 29.section s_, "" ; .long 1 30.section s_a,"a"; .long 1 31.section s_b,"b"; .long 1 32.section s_d,"d"; .long 1 33.section s_D,"D"; .long 1 34.section s_n,"n"; .long 1 35.section s_r,"r"; .long 1 36.section s_s,"s"; .long 1 37.section s_w,"w"; .long 1 38.section s_x,"x"; .long 1 39.section s_y,"y"; .long 1 40 41// CHECK: Section { 42// CHECK: Name: s 43// CHECK: Characteristics [ 44// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 45// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 46// CHECK-NEXT: IMAGE_SCN_MEM_READ 47// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 48// CHECK-NEXT: ] 49// CHECK: } 50// CHECK: Section { 51// CHECK: Name: s_ 52// CHECK: Characteristics [ 53// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 54// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 55// CHECK-NEXT: IMAGE_SCN_MEM_READ 56// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 57// CHECK-NEXT: ] 58// CHECK: } 59// CHECK: Section { 60// CHECK: Name: s_a 61// CHECK: Characteristics [ 62// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 63// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 64// CHECK-NEXT: IMAGE_SCN_MEM_READ 65// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 66// CHECK-NEXT: ] 67// CHECK: } 68// CHECK: Section { 69// CHECK: Name: s_b 70// CHECK: Characteristics [ 71// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 72// CHECK-NEXT: IMAGE_SCN_CNT_UNINITIALIZED_DATA 73// CHECK-NEXT: IMAGE_SCN_MEM_READ 74// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 75// CHECK-NEXT: ] 76// CHECK: } 77// CHECK: Section { 78// CHECK: Name: s_d 79// CHECK: Characteristics [ 80// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 81// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 82// CHECK-NEXT: IMAGE_SCN_MEM_READ 83// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 84// CHECK-NEXT: ] 85// CHECK: } 86// CHECK: Section { 87// CHECK: Name: s_D 88// CHECK: Characteristics [ 89// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 90// CHECK-NEXT: IMAGE_SCN_MEM_DISCARDABLE 91// CHECK-NEXT: IMAGE_SCN_MEM_READ 92// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 93// CHECK-NEXT: ] 94// CHECK: } 95// CHECK: Section { 96// CHECK: Name: s_n 97// CHECK: Characteristics [ 98// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 99// CHECK-NEXT: IMAGE_SCN_LNK_REMOVE 100// CHECK-NEXT: IMAGE_SCN_MEM_READ 101// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 102// CHECK-NEXT: ] 103// CHECK: } 104// CHECK: Section { 105// CHECK: Name: s_r 106// CHECK: Characteristics [ 107// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 108// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 109// CHECK-NEXT: IMAGE_SCN_MEM_READ 110// CHECK-NEXT: ] 111// CHECK: } 112// CHECK: Section { 113// CHECK: Name: s_s 114// CHECK: Characteristics [ 115// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 116// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 117// CHECK-NEXT: IMAGE_SCN_MEM_READ 118// CHECK-NEXT: IMAGE_SCN_MEM_SHARED 119// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 120// CHECK-NEXT: ] 121// CHECK: } 122// CHECK: Section { 123// CHECK: Name: s_w 124// CHECK: Characteristics [ 125// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 126// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 127// CHECK-NEXT: IMAGE_SCN_MEM_READ 128// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 129// CHECK-NEXT: ] 130// CHECK: } 131// CHECK: Section { 132// CHECK: Name: s_x 133// CHECK: Characteristics [ 134// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 135// CHECK-NEXT: IMAGE_SCN_CNT_CODE 136// CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE 137// CHECK-NEXT: IMAGE_SCN_MEM_READ 138// CHECK-NEXT: ] 139// CHECK: } 140// CHECK: Section { 141// CHECK: Name: s_y 142// CHECK: Characteristics [ 143// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 144// CHECK-NEXT: ] 145// CHECK: } 146 147// w makes read-only to readable 148.section s_rw,"rw"; .long 1 149// CHECK: Section { 150// CHECK: Name: s_rw 151// CHECK: Characteristics [ 152// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 153// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 154// CHECK-NEXT: IMAGE_SCN_MEM_READ 155// CHECK-NEXT: IMAGE_SCN_MEM_WRITE 156// CHECK-NEXT: ] 157// CHECK: } 158 159// r cancels w 160.section s_wr,"wr"; .long 1 161// CHECK: Section { 162// CHECK: Name: s_wr 163// CHECK: Characteristics [ 164// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 165// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 166// CHECK-NEXT: IMAGE_SCN_MEM_READ 167// CHECK-NEXT: ] 168// CHECK: } 169 170// y cancels both 171.section s_rwy,"rwy"; .long 1 172// CHECK: Section { 173// CHECK: Name: s_rwy 174// CHECK: Characteristics [ 175// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 176// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 177// CHECK-NEXT: ] 178// CHECK: } 179 180// Sections starting with ".debug" are implicitly discardable. This is 181// compatible with gas. 182.section .debug_asdf,"dr"; .long 1 183// CHECK: Section { 184// CHECK: Name: .debug_asdf 185// CHECK: Characteristics [ 186// CHECK-NEXT: IMAGE_SCN_ALIGN_1BYTES 187// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 188// CHECK-NEXT: IMAGE_SCN_MEM_DISCARDABLE 189// CHECK-NEXT: IMAGE_SCN_MEM_READ 190// CHECK-NEXT: ] 191// CHECK: } 192 193 194// CHECK: ] 195