brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.3 KiB · fdd6570 Raw
283 lines · plain
1// RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -S - | FileCheck %s2// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -S - | FileCheck %s3// RUN: not llvm-mc -triple x86_64-pc-win32 -filetype=obj --defsym ERR=1 %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR4 5.section .foo$bar; .long 16.section .foo@bar; .long 17.section ABCDEFGHIJKLMNOPQRSTUVWXYZ; .long 18.section abcdefghijklmnopqrstuvwxyz; .long 19.section _0123456789; .long 110 11// CHECK: Sections [12// CHECK:   Section {13// CHECK:     Name: .foo$bar14// CHECK:   }15// CHECK:   Section {16// CHECK:     Name: .foo@bar17// CHECK:   }18// CHECK:   Section {19// CHECK:     Name: ABCDEFGHIJKLMNOPQRSTUVWXYZ20// CHECK:   }21// CHECK:   Section {22// CHECK:     Name: abcdefghijklmnopqrstuvwxyz23// CHECK:   }24// CHECK:   Section {25// CHECK:     Name: _012345678926// CHECK:   }27 28// Test that the defaults are used29.section s      ; .long 130.section s_, "" ; .long 131.section s_a,"a"; .long 132.section s_b,"b"; .long 033.section s_d,"d"; .long 134.section s_D,"D"; .long 135.section s_n,"n"; .long 136.section s_r,"r"; .long 137.section s_s,"s"; .long 138.section s_w,"w"; .long 139.section s_x,"x"; .long 140.section s_y,"y"; .long 141.section s_i,"i"; .long 142 43// CHECK:        Section {44// CHECK:          Name: s45// CHECK:          Characteristics [46// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES47// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA48// CHECK-NEXT:       IMAGE_SCN_MEM_READ49// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE50// CHECK-NEXT:     ]51// CHECK:        }52// CHECK:        Section {53// CHECK:          Name: s_54// CHECK:          Characteristics [55// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES56// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA57// CHECK-NEXT:       IMAGE_SCN_MEM_READ58// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE59// CHECK-NEXT:     ]60// CHECK:        }61// CHECK:        Section {62// CHECK:          Name: s_a63// CHECK:          Characteristics [64// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES65// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA66// CHECK-NEXT:       IMAGE_SCN_MEM_READ67// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE68// CHECK-NEXT:     ]69// CHECK:        }70// CHECK:        Section {71// CHECK:          Name: s_b72// CHECK:          Characteristics [73// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES74// CHECK-NEXT:       IMAGE_SCN_CNT_UNINITIALIZED_DATA75// CHECK-NEXT:       IMAGE_SCN_MEM_READ76// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE77// CHECK-NEXT:     ]78// CHECK:        }79// CHECK:        Section {80// CHECK:          Name: s_d81// CHECK:          Characteristics [82// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES83// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA84// CHECK-NEXT:       IMAGE_SCN_MEM_READ85// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE86// CHECK-NEXT:     ]87// CHECK:        }88// CHECK:        Section {89// CHECK:          Name: s_D90// CHECK:          Characteristics [91// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES92// CHECK-NEXT:       IMAGE_SCN_MEM_DISCARDABLE93// CHECK-NEXT:       IMAGE_SCN_MEM_READ94// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE95// CHECK-NEXT:     ]96// CHECK:        }97// CHECK:        Section {98// CHECK:          Name: s_n99// CHECK:          Characteristics [100// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES101// CHECK-NEXT:       IMAGE_SCN_LNK_REMOVE102// CHECK-NEXT:       IMAGE_SCN_MEM_READ103// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE104// CHECK-NEXT:     ]105// CHECK:        }106// CHECK:        Section {107// CHECK:          Name: s_r108// CHECK:          Characteristics [109// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES110// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA111// CHECK-NEXT:       IMAGE_SCN_MEM_READ112// CHECK-NEXT:     ]113// CHECK:        }114// CHECK:        Section {115// CHECK:          Name: s_s116// CHECK:          Characteristics [117// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES118// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA119// CHECK-NEXT:       IMAGE_SCN_MEM_READ120// CHECK-NEXT:       IMAGE_SCN_MEM_SHARED121// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE122// CHECK-NEXT:     ]123// CHECK:        }124// CHECK:        Section {125// CHECK:          Name: s_w126// CHECK:          Characteristics [127// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES128// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA129// CHECK-NEXT:       IMAGE_SCN_MEM_READ130// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE131// CHECK-NEXT:     ]132// CHECK:        }133// CHECK:        Section {134// CHECK:          Name: s_x135// CHECK:          Characteristics [136// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES137// CHECK-NEXT:       IMAGE_SCN_CNT_CODE138// CHECK-NEXT:       IMAGE_SCN_MEM_EXECUTE139// CHECK-NEXT:       IMAGE_SCN_MEM_READ140// CHECK-NEXT:     ]141// CHECK:        }142// CHECK:        Section {143// CHECK:          Name: s_y144// CHECK:          Characteristics [145// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES146// CHECK-NEXT:     ]147// CHECK:        }148// CHECK:        Section {149// CHECK:          Name: s_i150// CHECK:          Characteristics [151// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES152// CHECK-NEXT:       IMAGE_SCN_LNK_INFO153// CHECK-NEXT:       IMAGE_SCN_MEM_READ154// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE155// CHECK-NEXT:     ]156// CHECK:        }157 158// w makes read-only to readable159.section s_rw,"rw"; .long 1160// CHECK:        Section {161// CHECK:          Name: s_rw162// CHECK:          Characteristics [163// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES164// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA165// CHECK-NEXT:       IMAGE_SCN_MEM_READ166// CHECK-NEXT:       IMAGE_SCN_MEM_WRITE167// CHECK-NEXT:     ]168// CHECK:        }169 170// r cancels w171.section s_wr,"wr"; .long 1172// CHECK:        Section {173// CHECK:          Name: s_wr174// CHECK:          Characteristics [175// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES176// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA177// CHECK-NEXT:       IMAGE_SCN_MEM_READ178// CHECK-NEXT:     ]179// CHECK:        }180 181// y cancels both182.section s_rwy,"rwy"; .long 1183// CHECK:        Section {184// CHECK:          Name: s_rwy185// CHECK:          Characteristics [186// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES187// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA188// CHECK-NEXT:     ]189// CHECK:        }190 191// Sections starting with ".debug" are implicitly discardable. This is192// compatible with gas.193.section .debug_asdf,"dr"; .long 1194// CHECK:        Section {195// CHECK:          Name: .debug_asdf196// CHECK:          Characteristics [197// CHECK-NEXT:       IMAGE_SCN_ALIGN_1BYTES198// CHECK-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA199// CHECK-NEXT:       IMAGE_SCN_MEM_DISCARDABLE200// CHECK-NEXT:       IMAGE_SCN_MEM_READ201// CHECK-NEXT:     ]202// CHECK:        }203 204/// The section name can be quoted.205.section "@#$-{","n"206// CHECK:        Section {207// CHECK-NEXT:     Number:208// CHECK-NEXT:     Name: @#$-{209 210// CHECK-NOT:    Section {211// CHECK:      ]212 213.section data1; .quad 0214 215.pushsection data2; .quad 0216.popsection217 218// Back to section data1219.quad 2220 221// CHECK:       Section {222// CHECK-NEXT:    Number:223// CHECK-NEXT:    Name: data1224// CHECK:         RawDataSize: 16225 226// CHECK:       Section {227// CHECK-NEXT:    Number:228// CHECK-NEXT:    Name: data2229// CHECK:         RawDataSize: 8230 231.section .data3,"dw"; .quad 1232 233.pushsection .data4,"dw"; .quad 1234.popsection235 236.pushsection .data5,"dr"; .quad 1237.popsection238 239// in section .data3240.quad 4241 242// Notice the different section flags here.243// This shouldn't overwrite the intial section flags.244.pushsection .data4,"dr"; .quad 1245.popsection246 247// CHECK:       Section {248// CHECK-NEXT:    Number:249// CHECK-NEXT:    Name: .data3250// CHECK:         RawDataSize: 16251// CHECK:         Characteristics [252// CHECK-NEXT:      IMAGE_SCN_ALIGN_1BYTES253// CHECK-NEXT:      IMAGE_SCN_CNT_INITIALIZED_DATA254// CHECK-NEXT:      IMAGE_SCN_MEM_READ255// CHECK-NEXT:      IMAGE_SCN_MEM_WRITE256// CHECK-NEXT:    ]257 258// CHECK:       Section {259// CHECK-NEXT:    Number:260// CHECK-NEXT:    Name: .data4261// CHECK:         RawDataSize: 16262// CHECK:         Characteristics [263// CHECK-NEXT:      IMAGE_SCN_ALIGN_1BYTES264// CHECK-NEXT:      IMAGE_SCN_CNT_INITIALIZED_DATA265// CHECK-NEXT:      IMAGE_SCN_MEM_READ266// CHECK-NEXT:      IMAGE_SCN_MEM_WRITE267// CHECK-NEXT:    ]268 269// CHECK:       Section {270// CHECK-NEXT:    Number:271// CHECK-NEXT:    Name: .data5272// CHECK:         RawDataSize: 8273// CHECK:         Characteristics [274// CHECK-NEXT:      IMAGE_SCN_ALIGN_1BYTES275// CHECK-NEXT:      IMAGE_SCN_CNT_INITIALIZED_DATA276// CHECK-NEXT:      IMAGE_SCN_MEM_READ277// CHECK-NEXT:    ]278 279.ifdef ERR280// ERR: :[[#@LINE+1]]:12: error: .popsection without corresponding .pushsection281.popsection282.endif283