# REQUIRES: x86
## Test quotation when specifying section names.

# RUN: rm -rf %t && split-file %s %t && cd %t
# RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o
# RUN: ld.lld -T a.t a.o
# RUN: llvm-readelf -S -s a.out | FileCheck %s

# CHECK:      Name         Type     Address          Off    Size   ES Flg Lk Inf Al
# CHECK-NEXT:              NULL     0000000000000000 000000 000000 00      0   0  0
# CHECK-NEXT: .text        {{.*}}
# CHECK-NEXT: .data        {{.*}}
# CHECK:        Num:    Value          Size Type    Bind   Vis       Ndx Name
# CHECK-NEXT:     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT   UND
# CHECK-NEXT:     1: 0000000000000009     0 NOTYPE  GLOBAL DEFAULT   ABS text_size
# CHECK-NEXT:     2: 0000000000000009     0 NOTYPE  GLOBAL DEFAULT   ABS data_size

#--- a.s
  .text
  nop

  .data
  .byte 0

#--- a.t
SECTIONS {
  ## Check quoted section names are accepted and quotes are removed in the
  ## output binary section name.
  ##
  ## Also check that functions taking a section name as parameter work correctly
  ## when quoted section names are provided as inputs.
  ".text" : AT(ADDR(".text")) {
    LONG (ALIGNOF(".text"))
    LONG (LOADADDR(".text"))
    *(.text)
  }
  text_size = SIZEOF(".text");

  ## Check that functions that take a section name can correctly match a quoted
  ## section name input parameter against a non-quoted section definition.
  .data : AT(ADDR(".data")) {
    LONG (ALIGNOF(".data"))
    LONG (LOADADDR(".data"))
    *(.data)
  }
  data_size = SIZEOF(".data");
}
