]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix a compilation error with MinGW GCC 3.x in tiff_handler.
authorEli Zaretskii <eliz@gnu.org>
Fri, 16 Sep 2011 10:25:39 +0000 (13:25 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 16 Sep 2011 10:25:39 +0000 (13:25 +0300)
 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.

src/ChangeLog
src/image.c

index 15281f474387032ec2a5572716bedb60d6f6bcf9..cf75c28c385c9c7a1324263cb5d805b1fdbb2e98 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * 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  <eggert@cs.ucla.edu>
 
        * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
index db201d5a831ab0b147d705579be59542be955c49..ef72745a72f1b1cdac4ab78c7e40a49675a1b4b5 100644 (file)
@@ -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);