lkml.org 
[lkml]   [2008]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [alsa-devel] [PATCH] ALSA: have snd_BUG_ON() always refer to arguments
    On Fri, Nov 7, 2008 at 02:36, Takashi Iwai wrote:
    > 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))

    that should work i think ...
    -mike


    \
     
     \ /
      Last update: 2008-11-07 08:59    [W:0.025 / U:31.604 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site