src/libFLAC/include/private/macros.h : Fix flac_min.
authorErik de Castro Lopo <erikd@mega-nerd.com>
Sun, 10 Mar 2013 11:02:07 +0000 (22:02 +1100)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Sun, 10 Mar 2013 19:06:34 +0000 (06:06 +1100)
The existing flac_min macro was generating -Wshadow compiler warnings
when nested.

src/libFLAC/include/private/macros.h

index 5104dc9..63dc3e5 100644 (file)
     __typeof__ (b) _b = (b); \
     _a > _b ? _a : _b; })
 
-#define flac_min(a,b) \
-    ({ __typeof__ (a) _a = (a); \
-    __typeof__ (b) _b = (b); \
-    _a < _b ? _a : _b; })
+#define MIN_PASTE(A,B) A##B
+#define MIN_IMPL(A,B,L) ({ \
+    __typeof__(A) MIN_PASTE(__a,L) = (A); \
+    __typeof__(B) MIN_PASTE(__b,L) = (B); \
+    MIN_PASTE(__a,L) < MIN_PASTE(__b,L) ? MIN_PASTE(__a,L) : MIN_PASTE(__b,L); \
+    })
+
+#define flac_min(A,B) MIN_IMPL(A,B,__COUNTER__)
 
 /* Whatever other unix that has sys/param.h */
 #elif defined(HAVE_SYS_PARAM_H)