lkml.org 
[lkml]   [2009]   [Sep]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 11/11] Use unreachable() in asm-generic/bug.h for !CONFIG_BUG case.
    From
    On Mon, Sep 14, 2009 at 5:55 PM, David Daney <ddaney@caviumnetworks.com> wrote:
    > The subject says it all (most).  The only drawback here is that for a
    > pre-GCC-5.4 compiler, instead of expanding to nothing we now expand
    > BUG() to an endless loop.  Before the patch when configured with
    > !CONFIG_BUG() you might get some warnings, but the code would be
    > small.  After the patch there are no warnings, but there is an endless
    > loop at each BUG() site.
    >
    > Of course for the GCC-4.5 case we get the best of both worlds.
    >
    > Signed-off-by: David Daney <ddaney@caviumnetworks.com>
    > Suggested-by: Ingo Molnar <mingo@elte.hu>
    > CC: Ingo Molnar <mingo@elte.hu>
    > ---
    >  include/asm-generic/bug.h |    4 ++--
    >  1 files changed, 2 insertions(+), 2 deletions(-)
    >
    > diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
    > index 4b67559..e952242 100644
    > --- a/include/asm-generic/bug.h
    > +++ b/include/asm-generic/bug.h
    > @@ -89,11 +89,11 @@ extern void warn_slowpath_null(const char *file, const int line);
    >
    >  #else /* !CONFIG_BUG */
    >  #ifndef HAVE_ARCH_BUG
    > -#define BUG() do {} while(0)
    > +#define BUG() unreachable()
    >  #endif
    >
    >  #ifndef HAVE_ARCH_BUG_ON
    > -#define BUG_ON(condition) do { if (condition) ; } while(0)
    > +#define BUG_ON(condition) do { if (condition) unreachable(); } while (0)
    >  #endif
    >
    >  #ifndef HAVE_ARCH_WARN_ON
    > --

    This seems wrong to me. Wouldn't you always want to do the endless
    loop? In the absence of an arch-specific method to jump to an
    exception handler, it isn't really unreachable. On gcc 4.5 this would
    essentially become a no-op.

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

    \
     
     \ /
      Last update: 2009-09-15 01:21    [W:0.024 / U:0.940 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site