Re: [PATCH 02/10] x86: Convert BUG() to use unreachable()

From: Linus Torvalds
Date: Thu Sep 10 2009 - 21:14:45 EST




On Thu, 10 Sep 2009, H. Peter Anvin wrote:

> On 09/10/2009 04:56 PM, David Daney wrote:
> > Use the new unreachable() macro instead of for(;;);. When
> > allyesconfig is built with a GCC-4.5 snapshot on i686 the size of the
> > text segment is reduced by 3987 bytes (from 6827019 to 6823032).
> >
> > Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx>
> > CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > CC: Ingo Molnar <mingo@xxxxxxxxxx>
> > CC: "H. Peter Anvin" <hpa@xxxxxxxxx>
> > CC: x86@xxxxxxxxxx
>
> Acked-by: H. Peter Anvin <hpa@xxxxxxxxx>
>
> ... although of course this clashes with Roland McGrath's patchset for
> the same thing which I applied earlier. I have to say I like
> unreachable() in lower case better though...

I like David's version a bit better, since it takes care of more
architectures, and also because it avoids that butt-ugly special case for
gcc-4.4.1-RH-relase-10 backporting this feature.

I realize that the RH backport thing is good for testing now, but at the
same time, it really does look nasty. I wonder if we could add some
config-time compiler feature testing - so that you'd not have a version
test at all, but a CONFIG_BUILTIN_UNREACHABLE.

There are other cases where that kind of config-time testing could be
useful, and we could avoid doing various gcc checks dynamically from
within 'make' (along with checking for known-buggy versions etc).

And yeah, it looks better in lower case. That said, I don't care _that_
much, and people can fight it out.

Linus
--
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/