Explorar o código

Add static assertions for version numbers' limits

Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie %!s(int64=4) %!d(string=hai) anos
pai
achega
d4b82bfa4c
Modificáronse 1 ficheiros con 16 adicións e 0 borrados
  1. 16 0
      src/SDL.c

+ 16 - 0
src/SDL.c

@@ -62,6 +62,22 @@ extern int SDL_HelperWindowCreate(void);
 extern int SDL_HelperWindowDestroy(void);
 extern int SDL_HelperWindowDestroy(void);
 #endif
 #endif
 
 
+SDL_COMPILE_TIME_ASSERT(SDL_MAJOR_VERSION_min, SDL_MAJOR_VERSION >= 0);
+/* Limited only by the need to fit in SDL_version */
+SDL_COMPILE_TIME_ASSERT(SDL_MAJOR_VERSION_max, SDL_MAJOR_VERSION <= 255);
+
+SDL_COMPILE_TIME_ASSERT(SDL_MINOR_VERSION_min, SDL_MINOR_VERSION >= 0);
+/* Limited only by the need to fit in SDL_version */
+SDL_COMPILE_TIME_ASSERT(SDL_MINOR_VERSION_max, SDL_MINOR_VERSION <= 255);
+
+SDL_COMPILE_TIME_ASSERT(SDL_PATCHLEVEL_min, SDL_PATCHLEVEL >= 0);
+#if SDL_MAJOR_VERSION < 3
+/* Limited by its encoding in SDL_VERSIONNUM */
+SDL_COMPILE_TIME_ASSERT(SDL_PATCHLEVEL_max, SDL_PATCHLEVEL <= 99);
+#else
+/* Limited only by the need to fit in SDL_version */
+SDL_COMPILE_TIME_ASSERT(SDL_PATCHLEVEL_max, SDL_PATCHLEVEL <= 255);
+#endif
 
 
 /* This is not declared in any header, although it is shared between some
 /* This is not declared in any header, although it is shared between some
     parts of SDL, because we don't want anything calling it without an
     parts of SDL, because we don't want anything calling it without an