<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/124413>124413</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
ASAN fails to catch UAF on compound literal
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Alcaro
</td>
</tr>
</table>
<pre>
```c
#include <stdio.h>
int main(void) {
int *xs[5] = {0};
for (int i = 0; i < 5; ++i) {
xs[i] = &(int){42};
}
for (int i = 0; i < 5; ++i) {
printf("%p = %d\n", xs[i], *xs[i]);
}
}
```
-fsanitize=address
GCC complains, Clang doesn't. https://godbolt.org/z/Phqh9fGsj
(Not mine, user garciat posted it on godbolt discord and asked if it's UB.)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysksFunDwQx59muIyyMmO8wIEDsB-5RZ9U5QG82CxOvfYWm7TN01eGTVK11yIEHv7j3_xnsAzBXJzWDYgOxCmTa5z90rR2lIvPzl79bODI9nsE1gJx40a7Ko3A-xCV8YcZ-H9JYq1xEa_SOKDq1RsFVCOUHbAWkwLU_gggOgHihMBPSWNQnoB3-3ZExMkvCFSlfLMlMeDdtuxRpCVQB9SZ39j3a2ObDzYddwxQDWVX0EehlJuCf1DythgXJ6AKiIDE7V5ZKBC92771n7ZS8D6CPa7_MrQ_3wcOrH2YgnQmmjcN_CSVWnQIu_PHvsfRX29WGhcSu7fSXVB5HRxQGQ84x3gLwFugAWi4eHX2Nh78cgEa3oCG_-dvcz09hpcdCFQ9-YhX43TCrUEveJHLaGTEmw9RKzQRvcM7CZUJo18USqdQhq9Jn9BEoDLgc3cAqjPVcFXzWma6yUteVnktqjKbG1YUfOIyr1SRs0lMula1lMecyWPOVcUy0xAjwXISueB1UR6IKs6k4jo_54JzCQXTV2nswdrXa2oqMyGsusmpKHKeWXnWNmynmsjp77ip6ZeIU7Y0adPDeb0EKJg1IYZPTDTR6qb90j7hJI0NGD2OMo4zPrdDaj8N3a9OoTVRL9Jm62KbP2Zt4ryeD6O_Ag2JfH893Bb_oscINGx-AtBwN_za0K8AAAD__3oHADw">