[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <s5hd4h8q974.wl%tiwai@suse.de>
Date: Fri, 07 Nov 2008 08:36:15 +0100
From: Takashi Iwai <tiwai@...e.de>
To: "Mike Frysinger" <vapier.adi@...il.com>
Cc: alsa-devel@...a-project.org, "Mike Frysinger" <vapier@...too.org>,
linux-kernel@...r.kernel.org
Subject: Re: [alsa-devel] [PATCH] ALSA: have snd_BUG_ON() always refer to arguments
At Fri, 7 Nov 2008 02:29:25 -0500,
Mike Frysinger wrote:
>
> On Fri, Nov 7, 2008 at 02:15, Takashi Iwai wrote:
> > At Fri, 7 Nov 2008 02:09:04 -0500,
> > Mike Frysinger wrote:
> >> On Fri, Nov 7, 2008 at 01:22, Takashi Iwai wrote:
> >> > At Thu, 6 Nov 2008 21:05:21 -0500,
> >> > Mike Frysinger wrote:
> >> >> The snd_BUG_ON() macro should always expand its argument even if we're
> >> >> forcing it to false. This kills off unused warnings that did not exist
> >> >> before the snd_assert() -> snd_BUG_ON() conversion.
> >> >
> >> > Andrew already change this differently. Check with the latest version.
> >>
> >> what are you defining as "latest version" ? i'm looking in torvalds
> >> linux-2.6.git.
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
> >
> >> > And which warning did you get actually?
> >>
> >> a few codecs define local vars which only get used in snd_BUG_ON() ...
> >> so if snd_BUG_ON() doesnt utilize cond, gcc whines that the var is
> >> unused.
> >
> > I know it. But I thought all these were removed in the actual codes.
> > I'd like to see the real warning messages.
>
> seems the warnings where in codec drivers we havent pushed into
> mainline yet. regardless, i dont think auditing code and changing it
> just to avoid (cond) references is the way to go. it also breaks
> valid C code if there were side effects in the (cond) as any other
> macro which does not properly utilize every argument exactly once.
IIRC, just giving 0 in a macro like your patch resulted in another
warning messages in case it's used plainly like:
snd_BUG_ON(foo);
That's the reason why { 0; } was used in the first place. But, this
caused yet another warning messages depending on gcc versions, thus
Andrew fixed it previously.
I think the best way is to change the latest code like:
#define snd_BUG_ON(cond) __snd_bug_on(0 && (cond))
Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists