Re: [PATCH] Disable branch profiling macros when sparsed.

From: Harvey Harrison
Date: Sat Jan 10 2009 - 02:18:41 EST


On Fri, 2009-01-09 at 22:13 -0800, David Miller wrote:
> From: Alexey Zaytsev <alexey.zaytsev@xxxxxxxxx>
> Date: Sat, 10 Jan 2009 08:57:28 +0300
>
> > The macros produce lots of unneeded warnings when
> > recursive if(({ .. if() {..} ..})) {..} and such
> > are substituted. And there is no point in sparsing
> > them anyway. This is useful if someone decides to
> > sparse an allyesconfig kernel.
> >
> > Signed-off-by: Alexey Zaytsev <alexey.zaytsev@xxxxxxxxx>
>
> If even sparse can't handle these things, it's no surprise
> how many gcc bogus warning problems we've run into because
> of this hairy if() macro.

It's not that sparse can't handle it, the warning is valid,
_____r and ______f are shadowed when these get nested. It
gets even worse when interacting with likely/unlikely tracing
as that chose the same identifiers too. So there the noise
could be drastically reduced changing the different identifiers
for the if () and __branch_check macros, but nesting will always
warn.

I've just been setting this to no in my allyesconfig sparse
runs....just wait until kmemtrace gets to mainline, then it
gets really bad :(

Cheers,

Harvey

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/