Browse Source

Added SDL_VARIABLE_LENGTH_ARRAY so this #ifdef is localized to one place.

Ryan C. Gordon 8 years ago
parent
commit
8b960d4e0f
2 changed files with 10 additions and 5 deletions
  1. 9 0
      src/SDL_internal.h
  2. 1 5
      src/audio/SDL_sysaudio.h

+ 9 - 0
src/SDL_internal.h

@@ -26,6 +26,15 @@
 #define _GNU_SOURCE
 #endif
 
+/* This is for a variable-length array at the end of a struct:
+    struct x { int y; char z[SDL_VARIABLE_LENGTH_ARRAY]; };
+   Use this because GCC 2 needs different magic than other compilers. */
+#if (defined(__GNUC__) && (__GNUC__ <= 2))
+#define SDL_VARIABLE_LENGTH_ARRAY 1
+#else
+#define SDL_VARIABLE_LENGTH_ARRAY
+#endif
+
 #include "dynapi/SDL_dynapi.h"
 
 #if SDL_DYNAMIC_API

+ 1 - 5
src/audio/SDL_sysaudio.h

@@ -105,11 +105,7 @@ typedef struct SDL_AudioDeviceItem
 {
     void *handle;
     struct SDL_AudioDeviceItem *next;
-    #if (defined(__GNUC__) && (__GNUC__ <= 2))
-    char name[1];  /* actually variable length. */
-    #else
-    char name[];
-    #endif
+    char name[SDL_VARIABLE_LENGTH_ARRAY];
 } SDL_AudioDeviceItem;