<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/77057>77057</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
C variable declaration after label is considered invalid
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ChoHag
</td>
</tr>
</table>
<pre>
If the declaration preceeds the label all is well. This is the same with or without the assignment in the declaration.
$ cat /tmp/wtf.c
int main () {
label:
int var = 42;
return var;
}
$ cc /tmp/wtf.c && ./a.out
/tmp/wtf.c:3:9: error: expected expression
int var = 42;
^
/tmp/wtf.c:4:16: error: use of undeclared identifier 'var'
return var;
^
2 errors generated.
$ cc -v
OpenBSD clang version 16.0.6
Target: amd64-unknown-openbsd7.4
Thread model: posix
InstalledDir: /usr/bin
cc: warning: argument unused during compilation: '-fbracket-depth=512' [-Wunused-command-line-argument]
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVE_vpCgQ_TTlpaJRRO0-eOieXrNz2sNOsmeEUtlBMIDds99-45-ZTc9k8_MgkPeo9yiqECHo0RK1UN2heiRijZPz7afJ_S7GpHfqn_bzgHEiVCSN8CJqZ3HxJIlU2AEjejIojEEd8EXGZPhl0mFbbXAQM-FLxwmd30e3xh04pGeyEbX9WSKD_AH57fwzjlJEBNbFeQHWveKQyQPTNuIstEVgF2BXhOZ-ALstKM8QuPGewiOUD-QMypOF5-cprt5ujB8QNI9fTMifPCCwGliNGbBOZG6N37lvRstbCeXtCuUNyXvn98m3hWQktU08haCdfXf0gWGofvsfLQ7lrajfxNZA6AZc7ZFhUqgV2agHTR6BNduxWfNhRvD9-2GBHUoBR7LkRST16_VJTJ_H8o-F7P3PB0oj7IhP8tvZsaizPKsPxhfhR4qbcTGrmqer_Wrdy6ZuIdsH1WT85E2ehMLZqf2mcXFBfzugzzZEYQyph94zAKxbgwfW9frMs9xyhS_hrbbjruXHda_G1a6BFKrVazuidPOizV6UR6AmHXov5FeKqaIlTlA-qoIBaxCqe_rXsTuVbp6FVanRltLvoaE6SypRbamu5VUk1BZNzjnnVc2TqS1yNlyID7KXtSqbvlHU9zld--LScylVoluWM54XeZVf-JXxrG76oaK6uVRFc8lFDTynWWiTGfOcM-fHRIewUts0edUke1eEvdsZs_TCHQTGtub37bYn7dcxAM-NDjH8FyXqaKj9tBWEFr15fxDEEMmfL4EOKJ0NWtFeaPYpjFbJ6k07xbiErSVZB6wbdZzWPpNuBtZtMueQLt79TTIC63ZzAVi3m_83AAD__2ATbEg">