diff --git a/include/cglm/types.h b/include/cglm/types.h index a671c5a..e6011c3 100644 --- a/include/cglm/types.h +++ b/include/cglm/types.h @@ -32,9 +32,13 @@ # define CGLM_ALIGN_MAT CGLM_ALIGN(16) #endif -#ifdef __GNUC__ -# define CGLM_ASSUME_ALIGNED(expr, alignment) \ - __builtin_assume_aligned((expr), (alignment)) +#if defined(__has_builtin) +# if __has_builtin(__builtin_assume_aligned) +# define CGLM_ASSUME_ALIGNED(expr, alignment) \ + __builtin_assume_aligned((expr), (alignment)) +# else +# define CGLM_ASSUME_ALIGNED(expr, alignment) (expr) +# endif #else # define CGLM_ASSUME_ALIGNED(expr, alignment) (expr) #endif