<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/78072>78072</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Error on seemingly correct file that gcc accepts
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
c7skasku
</td>
</tr>
</table>
<pre>
```
#include <malloc.h>
struct S {
int type;
};
int main(void) {
struct S *s;
switch (s->type) {
case 0:
struct S *t = malloc(100);
free(t);
return 0;
}
}
```
Is this a correct C program? If so, clang (17.0.5 alpine linux) fails to compile it.
```
test.c:11:3: error: expected expression
11 | struct S *t = malloc(100);
| ^
```
gcc does compile it, but I'm not sure which one is right.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMU8uOpDoM_RqzsRqFpOjAgkV1PaRe3y9IBQO5HQhKTD_-fgT9qJoaaTQIGcvG5_gcJSYl109EDZRPUB4zs_AQYmN1ejHpZckuof1o4FF8veIIYg9Sucn6pSUEdRiN98HmA6jTV3uLieNiGf9D0E_f9dpNjPwxE6jvmj5e8y2uv4zGTSCr1-BakPVvCFdYuU83o3V6c2wHBFmlB1CnjeVu1ppEKEDtfyp3gIygjvgpCGRVCAGyviUBUXeRCGTFf3Yi8RKnleCmrI9XoZ_JnZdbfE7Ig0to0IYYyTIecI6hj2YEdcbnDlMAeUDrzdSvGgudi7xE42c3EXo3Le-r2s44n5AD2jDOzhM6zm957siZEucW1L4oQO0VqD1SjCFuyftMlqldk0gpuTB9DiFiUSDoA_67dbg96wyUp7_40FuLbaB0s_8q-7IwPoPUI06BMS2R8G1wdsAwEbqE0fUD51nbqLZWtcmoKbQoi0oXO5kNjRZ1UXWiLanUdtdR15VyVytVdobaTurMNVLInSgKJZUodzJvL6LQoiovlRRt-6hhJ2g0zufev455iH3mUlqo0ZXQMvPmQj5tN0jKid5wa4KU64WKzTrzcFn6BDvhXeJ0RWHHnprT6jmGCRPR6Kbef_wcg241gQfDuFpjrKWZU7ZE3wzMc1rPsjyDPPeOh-WS2zCCPK_wX5-HOYb_yTLI87ZUAnnelv4VAAD__6IBIdY">