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

    <tr>
        <th>Summary</th>
        <td>
            [clang] initializer element is not a compile-time constant error when trying to initialize static array with elemment of type static const struct
        </td>
    </tr>

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

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

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

<pre>
    I came across this on while building gnome-remote-desktop on Gentoo with clang 16. Relevant error https://bugs.gentoo.org/885875.

Minimal reproducible code:

```c
struct AUDIO_FORMAT
{
        char* data;
};

typedef struct AUDIO_FORMAT AUDIO_FORMAT;

static const AUDIO_FORMAT audio_format_aac = { 0 };

static AUDIO_FORMAT server_formats[] =
{
  audio_format_aac,
};
```

With clang I get the following output

```
test.c:12:3: error: initializer element is not a compile-time constant
  audio_format_aac,
 ^~~~~~~~~~~~~~~~
1 error generated.
```

While with GCC I get the following output:

```
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../lib64/Scrt1.o: in function `_start':
(.text+0x17): undefined reference to `main'
collect2: error: ld returned 1 exit status
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVMFu4zYQ_Rr6MrAgkbYlH3RwkmqRw2KBbYseDYoaSWwp0iCHidNDv72gZCNxkm5RoIZBk9a8N5qZxydD0INFrNn2jm0fVjLS6HxtdCAXadW67qV-BCUnBKm8CwFo1AGchedRG4Q2atNpO8Bg3YRrj5MjXHcY_iB3SmFf0JJz8KxpBGWkHaDYZfAdDT5JS4DeOw8j0SkwcWC8Ybxp4xCyYcZlzg-MN1W1rcptxvIHlh-W9au2epIGPJ6866LSrUFQrsNE8yaO7fLlq5ZzIB8VweHXh8dvx-bb96-HXy6B5d0Vt1ej9IwfoJMkmbj-Xz687ueVXk7YYQ-fcN4muIUFkqQVKGfDO5CMnXbH3vlJ0lFKBUw8ACvvIIeP2S80NwQB_RP6C0NYZppI3pUIHzIxfv9JldfevU372-skH2FAAhoRemeMe046cJFOkT6dwKVpGChTTBwKzsRBMHFYRJA22mrS0ug_0QManNAS6ADWEUhQbjppg2vSEy7Nk5b-tR5g25_-uv0sD4qL9ga06CVhl_2o6Fnss4i_3N__qPB_UN_lyJsYPOON0S3jzaAU48252h13m_VJrY228bwebGS8KTjjTZZ9XD4Pb7VNtF3q4v-Rxeh2t2G8-Vl5KjK3DAf6aBVpZ4Ht8mMg6Ynx8rVkXmWEZ2L8Lj8XJeP7BIu2w15b7MBjjx6tQiCXGCaZXrpcwMoZg4r4jR5MAlH0CV0AnjVBUn0M77q76mrR7cVerrAuduV-vxE8L1djLbio2nwrlNx3hdiWpaxK0au2VVuJspcrXfOci1zwsqi2gpdZy1XR9tWmL3lfFfsd2-Q4SW0yY56mZEcrHULEeleUolwZ2aIJV_P0dQpaJ_9imzx5aHiFkSYz2-x8d9K9_O9qv0j2eUQL5F-S7Mi94YGLJ0jv5csi10Q8M7sekl_BjfsszrWK3tS3HjxoGmObKTclMZin68_65N3vqIjxZu5DYLyZW_F3AAAA__9iQ-5H">