diff --git a/libavutil/utils.c b/libavutil/utils.c
index 2159d1c6f5fb29bf87923a9314d0c9b6989c0cd7..eb87c906c892349818f7afbdb61165b7c0b7d934 100644
--- a/libavutil/utils.c
+++ b/libavutil/utils.c
@@ -99,7 +99,7 @@ unsigned av_int_list_length_for_size(unsigned elsize,
     if (!list)
         return 0;
 #define LIST_LENGTH(type) \
-    { type t = term, *l = list; for (i = 0; l[i] != t; i++); }
+    { type t = term, *l = (type *)list; for (i = 0; l[i] != t; i++); }
     switch (elsize) {
     case 1: LIST_LENGTH(uint8_t);  break;
     case 2: LIST_LENGTH(uint16_t); break;