[Spice-devel] [spice-protocol PATCH v1 11/12] macros: fix alignment issue reported by clang

Victor Toso victortoso at redhat.com
Wed Aug 5 05:23:25 PDT 2015


char_device.c:131:52: warning: cast from 'uint8_t *'
(aka 'unsigned char *') to 'SpiceCharDeviceMsgToClientItem *'
(aka 'struct SpiceCharDeviceMsgToClientItem *')
increases required alignment from 1 to 8 [-Wcast-align]

 SpiceCharDeviceMsgToClientItem *msg_item = SPICE_CONTAINEROF(item,
                                            ^~~~~~~~~~~~~~~~~~~~~~~

../spice-common/spice-protocol/spice/macros.h:142:6: note: expanded
from macro 'SPICE_CONTAINEROF'

 ((struct_type *)((uint8_t *)(ptr) - SPICE_OFFSETOF(struct_type, member)))
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---
 spice/macros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/spice/macros.h b/spice/macros.h
index dad029c..bc9b648 100644
--- a/spice/macros.h
+++ b/spice/macros.h
@@ -140,7 +140,7 @@
 #endif
 
 #define SPICE_CONTAINEROF(ptr, struct_type, member) \
-    ((struct_type *)((uint8_t *)(ptr) - SPICE_OFFSETOF(struct_type, member)))
+    ((struct_type *)(void *)((uint8_t *)(ptr) - SPICE_OFFSETOF(struct_type, member)))
 
 #define SPICE_MEMBER_P(struct_p, struct_offset)   \
     ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
-- 
2.4.3



More information about the Spice-devel mailing list