Re: validating signed/unsigned comparisons with Coccinelle, was Re: [PATCH 0/3] A couple of CI fixes regarding the built-in add --patch
From: Jeff King <hidden>
Date: 2022-08-30 21:32:30
From: Jeff King <hidden>
Date: 2022-08-30 21:32:30
On Tue, Aug 30, 2022 at 11:12:24PM +0200, Johannes Schindelin wrote:
On Tue, 30 Aug 2022, Phillip Wood wrote:quoted
I wonder if they would be interested in fixing the parsing bug we found with Peff's UNUSED() series.Could you point me to the relevant mail? I am sure that I can come up with an MCVE that will help them pinpoint the bug and fix it as quickly as they did with this here bug.
It's the sub-thread starting here: https://lore.kernel.org/git/220825.86ilmg4mil.gmgdl@evledraar.gmail.com/ (local) I tried to put together a minimal example, which would be something like: $ cat foo.c void old_function(int); void new_function(int); #if defined(__GNUC__) #define UNUSED(var) UNUSED_##var __attribute__((unused)) #else #define UNUSED(var) UNUSED_##var #endif void foo(int UNUSED(bar), int x) { old_function(x); } $ cat foo.cocci @@ expression E; @@ -old_function(E) +new_function(E) but to my frustration, it actually works! If you add --verbose-parsing to the spatch command, you can see it complaining about some of the parsing. And it produces wrong outputs in the real-world with our actual unused.cocci file. I suspect the example semantic patch might just need to be a little more complicated. -Peff