On 6.4.2013 23:30, Ulrich Klauer wrote:
Hi,
in include/share/alloc.h there is this section:
#ifndef SIZE_MAX
# ifndef SIZE_T_MAX
# ifdef _MSC_VER
# define SIZE_T_MAX SIZE_MAX
# else
# error
# endif
# endif
# define SIZE_MAX SIZE_T_MAX
#endif
So, if we are on MSVC and have neither SIZE_MAX nor SIZE_T_MAX, we'll
define SIZE_T_MAX to mean SIZE_MAX and SIZE_MAX to mean SIZE_T_MAX.
I'm afraid this won't work ...
It is like this since commit a4c321e, before that it used to say:
...
# ifdef _MSC_VER
# define SIZE_T_MAX UINT_MAX /* What happens on 64 bit windows? */
...
I can't offer a patch because I don't know much about MSVC or Windows
64 bit, but some kind of fix is obviously needed.
Patch for the circular define.
diff --git a/include/share/alloc.h b/include/share/alloc.h
index 8fc17f7..969209e 100644
--- a/include/share/alloc.h
+++ b/include/share/alloc.h
@@ -50,7 +50,11 @@
#ifndef SIZE_MAX
# ifndef SIZE_T_MAX
# ifdef _MSC_VER
-# define SIZE_T_MAX SIZE_MAX
+# ifdef _WIN64
+# define SIZE_T_MAX 0xffffffffffffffffui64
+# else
+# define SIZE_T_MAX 0xffffffff
+# endif
# else
# error
# endif
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev