From d4b82bfa4c8d049d9ec21e6f5b26afceccca601f Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Tue, 3 May 2022 13:17:59 +0100 Subject: [PATCH] Add static assertions for version numbers' limits Signed-off-by: Simon McVittie <smcv@collabora.com> --- src/SDL.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/SDL.c b/src/SDL.c index 82861c76d..a5d619805 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -62,6 +62,22 @@ extern int SDL_HelperWindowCreate(void); extern int SDL_HelperWindowDestroy(void); #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 parts of SDL, because we don't want anything calling it without an