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

    <tr>
        <th>Summary</th>
        <td>
            [clang bug] clang emits insufficient length debug information for array with `-O1`.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Tested on top-of-tree clang and lldb/gdb
Given the following code
```c
#include "stdint.h"
int a, b, c;
int16_t func_3();

int16_t func_3() {
  int64_t l_126[4] = {0x5C253C716A15F506LL, 0x5C253C716A15F506LL,
 0x5C253C716A15F506LL, 0x5C253C716A15F506LL};
  c = l_126[0];
  b = 6;
  return c;
}
int main() {
  func_3();
  return 0;
}
```

lldb output:
```
* thread #1, name = 'a.out', stop reason = breakpoint 1.2
    frame #0: 0x0000555555555170 a.out`main [inlined] func_3 at r.c:8:5
   5    int16_t func_3() {
   6 int64_t l_126[4] = {0x5C253C716A15F506LL, 0x5C253C716A15F506LL,
   7 0x5C253C716A15F506LL, 0x5C253C716A15F506LL};
-> 8 c = l_126[0];
   9      b = 6;
   10     return c;
   11 }
(lldb) p l_126
(int64_t[4])  ([0] = 6639779683436459270, [1] = 0, [2] = 0, [3] = 0)
```

DWARF generated by `clang`
```
 <2><70>: Abbrev Number: 7 (DW_TAG_variable)
    <71>   DW_AT_name        : (indexed string: 0xb): l_126
    <72>   DW_AT_decl_file   : 0
    <73> DW_AT_decl_line   : 6
    <74>   DW_AT_type        : <0x8d>
/* ---- lengthy DWARF in between ---- */
 <3><cd>: Abbrev Number: 5 (DW_TAG_variable)
    <ce>   DW_AT_location    : 13 byte block: 10 86 ea d7 d0 96 8e cf 92 5c 9f 93 8     (DW_OP_constu: 6639779683436459270; DW_OP_stack_value; DW_OP_piece: 8)
    <dc>   DW_AT_abstract_origin: <0x70>
```

Interesting thing is that this bug reveals `gdb` also isn't robust enough handling this sort of DIE.
```
(gdb) p l_126
$1 = {6639779683436459270, <synthetic pointer>, <synthetic pointer>, <synthetic pointer>}
```

Complier/debugger versions:
```
clang version 17.0.0 (https://github.com/llvm/llvm-project.git c06adaeba69de173f8eaa16f3449d7e0edaa897f)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Selected multilib: .;@m64

lldb version 17.0.0git (https://github.com/llvm/llvm-project.git revision c06adaeba69de173f8eaa16f3449d7e0edaa897f)
  clang revision c06adaeba69de173f8eaa16f3449d7e0edaa897f
  llvm revision c06adaeba69de173f8eaa16f3449d7e0edaa897f
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vl9v6y4S_TTkZZQIg43thzykSXP1k37au9qtdB8jbI8dbglEgNPm26-wnTT9d3dbaa0olmeGw8zhMCC9V51BXJLsjmSbmezD3rrl7yezP88q25yXD-gDNmANBHuc23YeHCLUWpoOpGlA66YibNs1FaEbQlc_1AkNhD1Ca7W2T8p0UNsGRy8RdPzV0zfjytS6bxAIYz40yoTFnjA2upUJIAlbQxX_asLvrvZE7AK0val3nLCCsPLq_DwESD7FACgTRLoLoHcJEyS7S0m2AcI3MYY-Z2uW8XWeiFWSbTMq_v47JvCJfYL80qh8c80XoB4mvmRCSXbrrAanuLE4DL0zN3REtCtfB6nM-3I_ZOoKRd9DXVfqltS42GD7cOwD4auPA9kKwt6hbIAwnkQCjDzgSC3L5cL2gbA82n2wR3AovTWDu3IoH482FpEs2CVFgNYNAIxTwiPNlFKaXZ4kpzCCChpLB5LdKaOVwSau6Fg3yABuURO-KghfZVfoLML_N6WA-D-IBSD_tmDmhN9D8WfVQAnD8149kNDB805F0ZXAiwBYMe7tEo7TLBf7RMdERIyASNuYxDih4GWel6LgKRdpVrKcxspIdpdcQi4G9tbAbwzlH8S4-bX61xY6NOhkbFHVGWJjiZ3pJfL1QCB8zQi_J3yd0-G9glVVOTzBP_pDhS4a8ljM5tfuYfVjd5JOyUrjNZPIXBydxDUA2PzarR52g8CnJyIMFDX4jA344JTpRt1Ww95b3ZJ5gWO3cA3WetcqjRMcfR3LY-xNZNT6FPkGNb1FDefj6yT5mj4XTWRhWtdt3Lvz-XwOGk0X9mcYKVYGKgxPiGb0EjYEXxnlI6N18xmj2f_AaI23yWpby6CsuSSbcKjOAaHStn4cDBQKASihyaGhUAooEOoWSgZZDWULJYdirHWY-uc_d7U1PvQDTR-ok9_BGOaDrB93J6l7fDEeFcYEV1C8zbupb_OWlQ9O1mFnneqUufI8qu1zLf9lAjr0IZ6WYR__lYewlyF-eaj6DhyeUGofNR4PW0FBam9BeUNYHsDZqvcB0Ni-28NemkZPYB68dQFsC5u_7hefNO2i-3Crp8mlzX22o_nan03YY1A1DL07Lvn9N11_PHzW9nDUCh1h2warvuvQwQmdV9b4z06j8Z4yRUGSL-iCRkXsQzgOg6Lot50K-75a1PZA2Fbr0-U1Pzr7G-uw6FSAmgrZSKykKBtMct4WKGUiWp6mZZMjxUbKoszbq0AepOswnpPwXIidSOe9eTT2ycy1Mv3zvDP9FDeelgfboI7RR-vV8-j6N2qsY2_7sV6DMj5IrYd9MXaZbe8jG1oNN7C6Jmw7TfUyBdvmb7AOvQ4qjuErWMTun9KDSN8d869Jiwx8jzeHJzUAfZlAmK6ZX0eYhsdcvjv6KqRZs-RNyUs5w2UiCsoZzWg52y9TUTVNVhS8ZEmbUNFiUQvalq0URVqKfKaWjDJOU5pQniZpuagwR0Z5KSWVqag5SSkepNKLmOjCum6mvO9xKZIiL2daVqj95WbulgOzVd95klKtfPAvw4IKerjDj4RVfRfP0PEDDyr4KJ6-bVWt0ISpvcOwi0CZ1rrD2G1b60A6J8_wpMI-tpr5z4QIupj1Ti-_tviEbYdqPGHboaD_BAAA__8mNmiY">