Re: [PATCH] math-emu/setcc: avoid gcc extension

Christoph Hellwig
2007-01-07T19:59:14Z

On Sun, Jan 07, 2007 at 11:19:00AM -0800, Randy Dunlap wrote:
> On Sun, 7 Jan 2007 20:12:42 +0100 Segher Boessenkool wrote:
>
> > There's an extra tab in that last line. Could you also
> > please fix the indenting (use a tab, not spaces) -- I know
> > it was there originally, but since there are only a few
> > lines in that file like that... :-)
>
> how's this one?
> ---
> From: Randy Dunlap <randy.dunlap@oracle.com>
>
> setcc() in math-emu is written as a gcc extension statement expression
> macro that returns a value. However, it's not used that way and it's
> not needed like that, so just make it a do-while non-extension macro
> so that we don't use an extension when it's not needed.
>
> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> ---
> arch/i386/math-emu/status_w.h | 5 +++--
>
> ---
> arch/i386/math-emu/status_w.h | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> --- linux-2620-rc2.orig/arch/i386/math-emu/status_w.h
> +++ linux-2620-rc2/arch/i386/math-emu/status_w.h
> @@ -48,9 +48,10 @@
>
> #define status_word() \
> ((partial_status & ~SW_Top & 0xffff) | ((top << SW_Top_Shift) & SW_Top))
> -#define setcc(cc) ({ \
> - partial_status &= ~(SW_C0|SW_C1|SW_C2|SW_C3); \
> - partial_status |= (cc) & (SW_C0|SW_C1|SW_C2|SW_C3); })
> +#define setcc(cc) do { \
> + partial_status &= ~(SW_C0|SW_C1|SW_C2|SW_C3); \
> + partial_status |= (cc) & (SW_C0|SW_C1|SW_C2|SW_C3); \
> +} while (0)

Is there any reason you this shouldn't be an inline function?