<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56610>56610</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Unexcepted behavior when use OVERLAY in link script
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Jolyon0202
      </td>
    </tr>
</table>

<pre>
    Hi I found an Unexcepted behavior in lld.

Here is my test. We use OVERLAY in link script. If the fist section of OVERLAY is empty, the second section's LMA is not the address we defined(it's 0!!). Like is:

```
# REQUIRES: x86
# RUN: echo 'nop; .section .small, "a"; .long 0; .section .big, "a"; .quad 1;' \
# RUN:   | llvm-mc -filetype=obj -triple=x86_64-unknown-linux - -o %t.o
# RUN: ld.lld %t.o --script %s -o %t

SECTIONS {
  .out.big : AT(0x4000) { *(.big) }
  OVERLAY 0x1000 : AT ( 0x4000 ) {
    .out.empty { *(.empty) }
    .out.small { *(.small) }
  }
}

# RUN: llvm-readelf --sections -l %t | FileCheck %s
```
Result
`
Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .out.big          PROGBITS        0000000000000000 001000 000008 00   A  0   0  1
  [ 2] .out.small        PROGBITS        0000000000001000 002000 000004 00   A  0   0  1
  [ 3] .text             PROGBITS        0000000000001004 002004 000001 00  AX  0   0  4
  [ 4] .comment          PROGBITS        0000000000000000 002005 000067 01  MS  0   0  1
  [ 5] .symtab           SYMTAB          0000000000000000 002070 000018 18      7   1  8
  [ 6] .shstrtab         STRTAB          0000000000000000 002088 00003e 00      0   0  1
  [ 7] .strtab           STRTAB          0000000000000000 0020c6 000001 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  l (large), p (processor specific)

Elf file type is EXEC (Executable file)
Entry point 0x1004
There are 4 program headers, starting at offset 64

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  LOAD           0x001000 0x0000000000000000 0x0000000000004000 0x000008 0x000008 R   0x1000
  LOAD           0x002000 0x0000000000001000 0x0000000000000000 0x000004 0x000004 R   0x1000       <-   Look Here!
  LOAD           0x002004 0x0000000000001004 0x0000000000000004 0x000001 0x000001 R E 0x1000
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x0

 Section to Segment mapping:
  Segment Sections...
   00     .out.big
   01     .out.small
   02     .text
   03
   None   .comment .symtab .shstrtab .strtab
`

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNV9132joM_2vCiw6cJAQIDzyklG7cUdgldN2edvLhEK9JnCXOCvevv7LjfAA97XJCY8uyfrIkS6rPwvPiM4U1RKzKQvAyeMrIKSA5JyH4JPb-UFYAzSBJwpGm32u6U__9TAoCtIT0DJyUfATPBKqSwO7bar9xfsgtNHuBMihojsvrCHhMIKIlh5IEnLIMWNSxl0DSnJ81cyn5kIWhPopTM2clbB4dwZYxLjm8MCxIWcIrgZBENCOhZtqUS1ZdMw35zkewoS9CUW3s9NXXprp666k5hv3q36f1fuUiJ5zsaW_haStoJIgZoPiM5dr4DkbNKUZl6iWJUFwzTQ9_cjVh2RH1uGD06fGa7XflhWDgEAWDNlneoAJosyVa_086TAMYRjQh_JwTbXzP_F8w5GjdRMxQ459Ta1hlLxl7zYZo--oEQxgKlSd8xG4Eoz_Rp2oVhsPaUWJeNrv6BnNXy8N6t3VRnbuaAjBiFReHAiHPOaD99ZOl62j9uWBDGQho18cWlPtmY-N1_WQgu9qO7DbUAkBJaPgVlIyQvmQVMheyFa90Sp9XeemCtx12gxszCcsXxAtJEgkr1b5EEyXSRNI7D-iUZUyCF2m9NwNsT8oq4d1SbVMVGJ-F-KILUVRscrcttMk9bL2UwMVzQO_35466B-2ziyLxcel_gm_lwkNyhM0LrLMInKSHgOGJCLfP9mmz6c_1qweuP4qt_ul9BEMgtGHSPl_3u09364P7DoLRItg1gtMiGH0Es0WoPf4XCEq02SJY7yKMJQInJ35hpQ8QrBrBqumGRHC-twhWH8GSCAFLU5Lxv0PQ2zNMJH06AwSBR_ftM0wkQnlOuef3zuD-eDw4d-962tRntZUMG_CVzwx_CGb3EaY1Qlzyoo_hHvYfI9i2pI_JdSxdnGFWI1zK_0uEYNr3wy3CF4JljOFN8Y79a_gsctJrQTnBxCFStyMIGGYsUITvgkBOJKhankdBSklxbAiuIKDeNEPhNWktSDSLWD1v8DaCLMsmKzAjKOZdjcELD3Yu5AUL8L6jMCjI74oWovBJvk-C71iwKlcEmVIPG_cSRBQgG4MtF2mj3XwSVFU9FEkUARsRy5wENKLNkVe1OkFSheRSciLV97qT54KgFMY2oi-ol21XmFlFXQNR2ESJX31fSSVX0q6enxC53m5bZbw4Q84o3hZZQtRtOsSiKfHwZwkzHQsvhVjlVtSm5F7Bhd08jq1HVBIOU6uvyFe15zYfXyXdXb0b4BstuEjA_bwQn8srkqgPmI7xepJUfmVKdhJ6zFrP75x-KtZPTZo63cbzBcnqkexusJdChIh3EMxbcR-AWt2gQ1AStfFyiJ8NYy8gukPRgL2Lbd1iX5P6kEY32GMQXp7u0_bpp3twll86hDeM9RGpG-yfpZB-dEBTrjFRuOQoc3Xq5TlGVC9SmhXFXI5Go7YzUaZq6mFHNzp63aa0K2a9IqpPRxy3wy3LRFy2taNJ8V0iVgnzqvMYhItxOB_PvQGnPCGLt5r-15hk77T0g6pIFjHnubwn5gO-R8rjyhfK4EQ0TuozxMv4C-2BU1qWFcHb-DCZTg19EC_0iTHXxzPTMHzftq1wGkaeNffnUYiJVjfHg8TzSVIusAJgz5yRV5AiRP88uR_QhambWKKMuWHpY90a-VN_bkWGYXiGMfNtolk6ST2ajIQeI1YcB8VCquRXmIwtPcH_R8pu0cPEeswIkXAo36t4zIrFPyw5swxj1hxI9IXU_n9ovmk1">