# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/synthetic-symbols.s -o %t
# RUN: ld.lld -o %t.exe --eh-frame-hdr --script %s %t
# RUN: llvm-objdump -t %t.exe | FileCheck %s

# Simple symbol assignment within input section list. The '.' symbol
# is not location counter but offset from the beginning of output
# section .foo

SECTIONS {
  . = SIZEOF_HEADERS;
  .foo : {
    begin_foo = .;
    PROVIDE(_begin_sec = .);
    *(.foo)
    end_foo = .;
    PROVIDE_HIDDEN(_end_sec = .);
    PROVIDE(_end_sec_abs = ABSOLUTE(.));
    size_foo_1 = SIZEOF(.foo);
    size_foo_1_abs = ABSOLUTE(SIZEOF(.foo));
    . = ALIGN(0x1000);
    begin_bar = .;
    *(.bar)
    end_bar = .;
    size_foo_2 = SIZEOF(.foo);
  }

  size_foo_3 = SIZEOF(.foo);

  .eh_frame_hdr : {
     __eh_frame_hdr_start = .;
     __eh_frame_hdr_start2 = ABSOLUTE(ALIGN(0x10));
     *(.eh_frame_hdr)
     __eh_frame_hdr_end = .;
     __eh_frame_hdr_end2 = ABSOLUTE(ALIGN(0x10));
  }

  .eh_frame : {}
}

# CHECK:      0000000000000128         .foo    00000000 .hidden _end_sec
# CHECK-NEXT: 0000000000000120         .foo    00000000 _begin_sec
# CHECK-NEXT: 0000000000000128         *ABS*   00000000 _end_sec_abs
# CHECK-NEXT: 000000000000104c         .text   00000000 _start
# CHECK-NEXT: 0000000000000120         .foo    00000000 begin_foo
# CHECK-NEXT: 0000000000000128         .foo    00000000 end_foo
# CHECK-NEXT: 0000000000000008         *ABS*   00000000 size_foo_1
# CHECK-NEXT: 0000000000000008         *ABS*   00000000 size_foo_1_abs
# CHECK-NEXT: 0000000000001000         .foo    00000000 begin_bar
# CHECK-NEXT: 0000000000001004         .foo    00000000 end_bar
# CHECK-NEXT: 0000000000000ee4         *ABS*   00000000 size_foo_2
# CHECK-NEXT: 0000000000000ee4         *ABS*   00000000 size_foo_3
# CHECK-NEXT: 0000000000001004         .eh_frame_hdr     00000000 __eh_frame_hdr_start
# CHECK-NEXT: 0000000000001010         *ABS*             00000000 __eh_frame_hdr_start2
# CHECK-NEXT: 0000000000001018         .eh_frame_hdr     00000000 __eh_frame_hdr_end
# CHECK-NEXT: 0000000000001020         *ABS*             00000000 __eh_frame_hdr_end2
