[flac-dev] Bug: incompatibility with MSVS 2005

Erik de Castro Lopo mle+la at mega-nerd.com
Sun May 11 03:12:06 PDT 2014


lvqcl wrote:

> Erik de Castro Lopo wrote:
> 
> >> because MSVS2005 doesn't provide stdint.h. According to MSDN,
> >> uintptr_t is defined in "STDDEF.H and other include files".
> >
> > Does the rest of FLAC actually support those compilers?
> 
> Yes. I removed this #include and all projects were successfully
> built with MSVS 2005 Express.

Ok, that helps.


> --------------
> Why MSVS can compile memory.c when "#include <stdint.h>" was removed:
> memory.c includes "private/memory.h", it indirectly includes <crtdefs.h>
> where uintptr_t is defined. But it's implementation details...
> 
> --------------
> memory.c also includes "share/alloc.h" which contains the following code:
> 
> #if HAVE_STDINT_H
> #include <stdint.h> /* for SIZE_MAX in case limits.h didn't get it */
> #endif
> 
> but memory.c includes <stdint.h> unconditionally. What was the reason for
> this #ifdef/#endif? Compatibility with non-C99 compilers?

Yes.

Since the file compiles with VS2008 without that include I have just just
wrapped wrapped it in an #ifdef HAVE_STDINT_H.

Cheers,
Erik
-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/


More information about the flac-dev mailing list