Re: Possible code defects: macros and precedence

From: Joe Perches
Date: Tue Sep 20 2016 - 13:07:40 EST


On Tue, 2016-09-20 at 15:14 +0200, Julia Lawall wrote:
> The semantic patch below finds a binary operator in a macro and a binary
> operator in the use of the macro, and checks if the priority of the
> operator in the macro is higher (lower number) than the priority of the
> operator in the use.  If this is the case, it adds parentheses in the use,
> which is not what one wants, but serves to show where the problem is

Thanks, this works on the trivial example I suggested
without an #include

I've tried it on trivial files with --recursive-includes
and it seems to work there too.

I'll investigate some more convoluted uses later.

btw: There are ~15K checkpatch MACRO_ARG_PRECEDENCE
messages in the -next kernel tree.  That's probably
too many for a theoretical and likely not an actual
problem.

cheers, Joe