aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii <[email protected]>2011-09-16 13:25:39 +0300
committerEli Zaretskii <[email protected]>2011-09-16 13:25:39 +0300
commitb41c3a3565631bdb20611126cae9bca4a4bc81f9 (patch)
tree78dd74d418d04959b31834b1b3cf05c5a8fa4f8d /src
parent7812ba2dea75097980bb6371381385b417479c74 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/image.c15
2 files changed, 18 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 15281f4743..cf75c28c38 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-09-16 Eli Zaretskii <[email protected]>
+
+ * 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 <[email protected]>
* editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
diff --git a/src/image.c b/src/image.c
index db201d5a83..ef72745a72 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);