Fix compilation of (no-op) alignment assertions on non-gcc
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Mon, 15 Aug 2011 08:52:04 +0000 (09:52 +0100)
committerRalf Habacker <ralf.habacker@freenet.de>
Mon, 15 Aug 2011 15:31:50 +0000 (17:31 +0200)
do {} while (0) isn't valid at file scope, so the non-gcc code path
was broken; in particular, this affected MSVC.

Reviewed-by:Ralf Habacker <ralf.habacker@freenet.de>

dbus/dbus-marshal-basic.c

index 215cc95..b139853 100644 (file)
 # define _DBUS_ASSERT_ALIGNMENT(type, op, val) \
   _DBUS_STATIC_ASSERT (__extension__ __alignof__ (type) op val)
 #else
-# define _DBUS_ASSERT_ALIGNMENT(type, op, val) do { } while (0)
+  /* not gcc, so probably no alignof operator: just use a no-op statement
+   * that's valid in the same contexts */
+# define _DBUS_ASSERT_ALIGNMENT(type, op, val) \
+  _DBUS_STATIC_ASSERT (TRUE)
 #endif
 
 /* True by definition, but just for completeness... */