C99 parsing error?

Falk Hueffner falk.hueffner@student.uni-tuebingen.de
Sun May 18 15:22:00 GMT 2003


Jamie Lokier <jamie@shareable.org> writes:

> Is it really not permitted to write this in C99?:
> 
> 	while (--length >= 0)
> 	  {
> 	  loop:
> 	    int byte = *data++;
> 
> GCC 3.2.2 reports: parse error before "int"
> If I replace "loop:" with "loop:;", it's fine.

That is indeed not permitted. C99 allows mixing statements and
declarations within blocks, but a declaration *is* not a statement,
and a label must be followed by a statement.

-- 
	Falk



More information about the Gcc mailing list