diff --git a/libavcodec/4xm.c b/libavcodec/4xm.c
index 04c20ff97cb1f769d9f1ebd33d990f6c7c44a5b5..682143340c8bc423362e777520467a7569b7096e 100644
--- a/libavcodec/4xm.c
+++ b/libavcodec/4xm.c
@@ -551,7 +551,7 @@ static int decode_i_frame(FourXContext *f, uint8_t *buf, int length){
     uint16_t *dst= (uint16_t*)f->current_picture.data[0];
     const int stride= f->current_picture.linesize[0]>>1;
     const int bitstream_size= get32(buf);
-    const int token_count __attribute((unused)) = get32(buf + bitstream_size + 8);
+    const int token_count __attribute__((unused)) = get32(buf + bitstream_size + 8);
     int prestream_size= 4*get32(buf + bitstream_size + 4);
     uint8_t *prestream= buf + bitstream_size + 12;
     
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 61919e9f3ee77ffc7d54d95549a8e97ce7ba0c63..f10c212d333b1d4105b9d74bfebececb6fe32baf 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -505,6 +505,7 @@ char *pstrcat(char *buf, int buf_size, const char *s);
 
 void __dynarray_add(unsigned long **tab_ptr, int *nb_ptr, unsigned long elem);
 
+#ifdef __GNUC__
 #define dynarray_add(tab, nb_ptr, elem)\
 do {\
     typeof(tab) _tab = (tab);\
@@ -512,6 +513,12 @@ do {\
     (void)sizeof(**_tab == _elem); /* check that types are compatible */\
     __dynarray_add((unsigned long **)_tab, nb_ptr, (unsigned long)_elem);\
 } while(0)
+#else
+#define dynarray_add(tab, nb_ptr, elem)\
+do {\
+    __dynarray_add((unsigned long **)(tab), nb_ptr, (unsigned long)(elem));\
+} while(0)
+#endif
 
 time_t mktimegm(struct tm *tm);
 const char *small_strptime(const char *p, const char *fmt,