Make sure the value in abs() does not get truncated if it is greater than 2^32

abs() will truncate the input if is it outside the 2^32 range.  Fix that
by assuming `long' input.

This might generate worse code in the common case.

Signed-off-by: Rolf Eike Beer <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
Rolf Eike Beer authored and Linus Torvalds committed 2009-09-23 07:39:30 -07:00
1 parent d7d7561c90
commit a49c59c042
1 file changed
+1 -1
+1 -1
View File
@@ -146,7 +146,7 @@ extern int _cond_resched(void);
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
#define abs(x) ({ \
int __x = (x); \
long __x = (x); \
(__x < 0) ? -__x : __x; \
})