[Spice-devel] [PATCH spice-protocol] vd_agent: Do not define structures without fields
Frediano Ziglio
fziglio at redhat.com
Thu May 31 14:42:34 UTC 2018
According to C standard the size of a structure without fields is
not defined (see
https://stackoverflow.com/questions/21851930/size-of-empty-structure-in-c-and-c).
As use almost use GCC we used these structures having 0-size. This is
usually not a problem however can became a problem if 2 side talking
a given protocol uses these structures.
To avoid such possible mismatch (for instance having one side C and the
other C++ which define these structure as having 1 as size) add an
empty (0-size array) field.
Although a 0-size array is not considered also that portable we use
extensively this feature with different compiler never encountering
issues.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
spice/vd_agent.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/spice/vd_agent.h b/spice/vd_agent.h
index 7109ede..dda7044 100644
--- a/spice/vd_agent.h
+++ b/spice/vd_agent.h
@@ -234,6 +234,7 @@ typedef struct SPICE_ATTR_PACKED VDAgentClipboardRelease {
uint8_t selection;
uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
#endif
+ uint8_t dummy_empty_field[0]; /* C/C++ compatibility */
} VDAgentClipboardRelease;
typedef struct SPICE_ATTR_PACKED VDAgentMaxClipboard {
--
2.17.0
More information about the Spice-devel
mailing list