about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/i386/bits/byteswap.h6
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index dccdad852a..d7b5c63268 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2002-12-10  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/i386/bits/byteswap.h (__bswap_64): Apply
+	__builtin_constant_p to macro parameter.
+
 	* sysdeps/generic/sigpause.c: Define all functions as weak.
 	* sysdeps/posix/sigpause.c: Likewise.
 
diff --git a/sysdeps/i386/bits/byteswap.h b/sysdeps/i386/bits/byteswap.h
index 980abc6bb7..db8b15d4d3 100644
--- a/sysdeps/i386/bits/byteswap.h
+++ b/sysdeps/i386/bits/byteswap.h
@@ -103,11 +103,11 @@
      (__extension__							      \
       ({ union { __extension__ unsigned long long int __ll;		      \
 		 unsigned long int __l[2]; } __w, __r;			      \
-	 __w.__ll = (x);						      \
-         if (__builtin_constant_p (__w.__ll))				      \
-	   __r.__ll = __bswap_constant_64 (__w.__ll);			      \
+         if (__builtin_constant_p (x))					      \
+	   __r.__ll = __bswap_constant_64 (x);				      \
 	 else								      \
 	   {								      \
+	     __w.__ll = (x);						      \
 	     __r.__l[0] = __bswap_32 (__w.__l[1]);			      \
 	     __r.__l[1] = __bswap_32 (__w.__l[0]);			      \
 	   }								      \