Re: [PATCH] transport-helper: avoid var decl in for () loop control
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Jul 17, 2019, 00:42 UTC
- Message-ID
- <20190717004231.GA93801@google.com>
- In-Reply-To
- <xmqq36j53esa.fsf_-_@gitster-ct.c.googlers.com>
Junio C Hamano wrote:
Show 8 quoted lines
> We do allow a few selected C99 constructs in our codebase these > days, but this is not among them (yet). > > Reported-by: Carlo Arenas <carenas@gmail.com> > Signed-off-by: Junio C Hamano <gitster@pobox.com> > --- > transport.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-)
Yes, gcc 4.8 fails to build without this:
transport.c:1234:4: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (struct ref *it = remote_refs; it; it = it->next)
^
transport.c:1234:4: note: use option -std=c99 or -std=gnu99 to compile your codeArguably it would be nice to use -std=gnu99 for better consistency between gcc versions, but it's moot here: avoiding the declaration in for loop initializer is more consistent with -Wdeclaration-after-statement anyway.
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Thanks.