Re: [LTP] [PATCH 2/3] fanotify10: Add support for multiple event files

Jan Kara
2022-11-21T09:14:53Z

On Thu 17-11-22 16:58:50, Petr Vorel wrote:
> Hi Jan, all,
>
> > +#define foreach_path(tc, buf, pname) \
> > + for (int piter = 0; format_path_check((buf), (tc)->pname##_fmt, \
> Unfortunately we still support C99 due old compiler on CentOS 7,
> therefore int piter needs to be defined outside of for loop.

Hum, but variable declaration in the for loop is part of C99 standard (as
the error message also says). So did you want to say you are compiling
against C89 standard? And CentOS 7 ships with GCC 4.8.5 AFAICS which should
be fully C99 compliant BTW. So what's the situation here?

That being said I can workaround the problem in the macro, it will just be
somewhat uglier. So before doing that I'd like to understand whether
following C89 is really required...

Honza

> fanotify10.c:470:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
> for (int piter = 0; format_path_check((buf), (tc)->pname##_fmt, \
> ^
>
> fanotify10.c:470:11: error: redefinition of ‘piter’
> for (int piter = 0; format_path_check((buf), (tc)->pname##_fmt, \
> ^
> Kind regards,
> Petr
--
Jan Kara <jack@suse.com>
SUSE Labs, CR