From: Eli Zaretskii Date: Fri, 16 Sep 2011 10:25:39 +0000 (+0300) Subject: Fix a compilation error with MinGW GCC 3.x in tiff_handler. X-Git-Tag: emacs-pretest-24.0.90~104^2~26 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b41c3a3565631bdb20611126cae9bca4a4bc81f9;p=emacs.git Fix a compilation error with MinGW GCC 3.x in tiff_handler. src/image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see GCC PR/17406) by declaring this function with external scope. --- diff --git a/src/ChangeLog b/src/ChangeLog index 15281f47438..cf75c28c385 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-09-16 Eli Zaretskii + + * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see + GCC PR/17406) by declaring this function with external scope. + 2011-09-15 Paul Eggert * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514). diff --git a/src/image.c b/src/image.c index db201d5a831..ef72745a72f 100644 --- a/src/image.c +++ b/src/image.c @@ -6745,10 +6745,20 @@ tiff_size_of_memory (thandle_t data) return ((tiff_memory_source *) data)->len; } +/* GCC 3.x on x86 Windows targets has a bug that triggers an internal + compiler error compiling tiff_handler, see Bugzilla bug #17406 + (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17406). Declaring + this function as external works around that problem. */ +#if defined (__MINGW32__) && __GNUC__ == 3 +# define MINGW_STATIC +#else +# define MINGW_STATIC static +#endif -static void tiff_handler (const char *, const char *, const char *, va_list) +MINGW_STATIC void +tiff_handler (const char *, const char *, const char *, va_list) ATTRIBUTE_FORMAT_PRINTF (3, 0); -static void +MINGW_STATIC void tiff_handler (const char *log_format, const char *title, const char *format, va_list ap) { @@ -6762,6 +6772,7 @@ tiff_handler (const char *log_format, const char *title, add_to_log (log_format, build_string (title), make_string (buf, max (0, min (len, sizeof buf - 1)))); } +#undef MINGW_STATIC static void tiff_error_handler (const char *, const char *, va_list) ATTRIBUTE_FORMAT_PRINTF (2, 0);