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

Randy Dunlap
2007-01-07T19:19:30Z

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)

#ifdef PECULIAR_486
/* Default, this conveys no information, but an 80486 does it. */