diff --git include/vlc_fixups.h include/vlc_fixups.h
index 997f600..d65f41c 100644
--- include/vlc_fixups.h
+++ include/vlc_fixups.h
@@ -239,9 +239,9 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base)
 }
 #endif
 
-#if !defined (HAVE_STATIC_ASSERT)
-# define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
 # define static_assert _Static_assert
+#if !defined (HAVE_STATIC_ASSERT) && !defined (static_assert)
+# define _Static_assert(x, s) ((void) sizeof (struct { unsigned a[(x) ? 1 : -1];}))
 #endif
 
 /* Alignment of critical static data structures */