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

    <tr>
        <th>Summary</th>
        <td>
            static compound literal
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          alejandro-colomar
      </td>
    </tr>
</table>

<pre>
    Hi,

I was experimenting to see if I could change the lifetime of a compound literal used within a function definition, to make it have static storage duration, instead of automatic.

I'm not sure if ISO C allows this, but it seems GCC does, experimentally.

```c
$ cat foo.c 
#include <string.h>
#include <stdio.h>

char *foo(void);

char *foo(void)
{
        return (static char []){"foo"};
}

int main(void)
{
        puts(memset(foo(), 'g', 2));
}
```
```sh
$ gcc-13 -Wall -Wextra foo.c 
$ ./a.out
ggo
```
```c
$ clang-16 -Weverything foo.c 
foo.c:8:10: error: expected expression
 return (static char []){"foo"};
                ^
1 error generated.
```

But Clang complains about it.  Would you mind supporting this syntax?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVE1v8zYM_jXKhYhhS_mwDz6k6bK9px126JmWaFvvZCmQqLb594PtZv1A8Q5YEMiU-JAPSZHClOzgiVqxfxD7xw1mHkNs0dFP9CaGrQ4uTBg3XTC39g8r5FmUj6I8resPeMEE9HqlaCfybP0AHCARge3hB-iQnQE9oh8IeCRwtie2E0HoAUGH6RqyN-AsU0QHOZGBF8uj9YDQZ6_ZBg-GeuvtLAp5ngkm_JvAMoz4TJAY2WpIHCIOBCZHvEOtT0xoFrbMYZqBxacEhDxO4ANDynEN-q8_4QzoXHhJwKNNs58u80yXiKYEv5_PYAItivfU0bnbJ9fiUK5__baXO9DI0IdQaLifKeu1y4ZAqHPiaP1QjEL99r3a2PBRu6x6xAhCnvoQhKyfgzVCNkI9_DdmBRz_RTaROEcPQtZvJV3tls6YDY4PQsrFhxTHx3eO4-NHMusZJrT-V0zXzEnIeqIpEQtZr4HNUHkGIY-DkMdZlMtR8w3Vvbhftml8L_ag9bZSsH1C52D7RK8c8Uv1d1AIecEiZF6PhiH8muDjZTr0w7Y6zL6fKd7mrh0-ESyyUKdaqFNVCnUCijHERXi9kmYysxAppblhFxv4n7cAX35i_9Ym1UoKA3mKyGSK7zNc1ofMcJ7zWmbTofUJsAtL-xcAT8s830KGyXoDKV-vIa5TP9oE6eYZX4W6bEyrTKMa3FBbHRp1qKq9VJux7fRur7WUfVV2-2Op0WjU-7rWiA12TbOxrSylKpuykkrVO1WY6njY9bUsd11Tll0pdiVNaF3h3PNUhDhsbEqZ2sO-asqNw45cur9msZ1B2y4PSexKZxOndzO27Ki91_jLS7TJ0bUj8zUJdRLyIuRlsDzmrtBhEvIye3n7bK8x_CTNQl6WSJKQlyWYfwIAAP__IL6V9w">