diff --git a/src/fmpi_futhark.c b/src/fmpi_futhark.c
index 4161a7544ca5361c95628b37b565ff356bd957b1..22760b42a25da3fbbae2c6e27fea52b96ea83503 100644
--- a/src/fmpi_futhark.c
+++ b/src/fmpi_futhark.c
@@ -157,6 +157,7 @@ void * fmpi_futhark_new_##D##d_##T( \
     const struct fmpi_futhark_ctx * const ctx, const void * const array, \
     const size_t x, const size_t y, const size_t z \
 ){ \
+    _Static_assert((D) <= FMPI_DIM_MAX, ""); \
     assert(ctx != NULL); \
     assert(array != NULL); \
     struct futhark_##T##_##D##d * data = FMPI_FUTHARK_NEW_##D(T, ctx->ctx, array, x, y, z); \
@@ -169,6 +170,7 @@ void * fmpi_futhark_new_##D##d_##T( \
 void fmpi_futhark_free_##D##d_##T( \
     const struct fmpi_futhark_ctx * const ctx, void * const array \
 ){ \
+    _Static_assert((D) <= FMPI_DIM_MAX, ""); \
     assert(ctx != NULL); \
     assert(array != NULL); \
     fmpi_futhark_sync(ctx);\