On Wed, 28 Sep 2011, Matt Turner wrote:

Caused by commit 893e86a4, and hidden by the (char *) cast.

That's an example of why just adding casts is not always a good idea.

Another way to do this would be to provide a local variable with
the "right" type (and generally at no cost, due to optimization).

Signed-off-by: Matt Turner <[email protected]>
---
include/misc.h |    2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/misc.h b/include/misc.h
index 1fea73e..180b3c1 100644
--- a/include/misc.h
+++ b/include/misc.h
@@ -277,7 +277,7 @@ static inline void __builtin_constant_p(int x)
/* byte swap a 32-bit value */
static inline void swap_uint32(uint32_t *x)
{
-       char n = ((char *) &x)[0];
+       char n = ((char *) x)[0];
        ((char *) x)[0] = ((char *) x)[3];
        ((char *) x)[3] = n;
        n = ((char *) x)[1];
--
1.7.3.4

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to