Commit 5f0cb45a authored by Paul Eggert's avatar Paul Eggert

Work around GCC and GNOME bugs when --enable-gcc-warnings.

* emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
to work around GNOME bug 683906.
* image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
(struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
This works around GCC bug 54561.
parent 40bce90b
2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
Work around GCC and GNOME bugs when --enable-gcc-warnings.
* emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
to work around GNOME bug 683906.
* image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
(struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
This works around GCC bug 54561.
2012-09-12 Paul Eggert <eggert@cs.ucla.edu>
More fixes for 'volatile' and setjmp/longjmp.
......
......@@ -27,6 +27,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "frame.h"
#include "xterm.h"
/* Silence a bogus diagnostic; see GNOME bug 683906. */
#include <verify.h>
#undef G_STATIC_ASSERT
#define G_STATIC_ASSERT(x) verify (x)
#define EMACS_TYPE_FIXED emacs_fixed_get_type ()
#define EMACS_FIXED(obj) \
G_TYPE_CHECK_INSTANCE_CAST (obj, EMACS_TYPE_FIXED, EmacsFixed)
......
......@@ -6140,6 +6140,9 @@ struct my_jpeg_error_mgr
MY_JPEG_INVALID_IMAGE_SIZE,
MY_JPEG_CANNOT_CREATE_X
} failure_code;
#ifdef lint
FILE *fp;
#endif
};
......@@ -6392,6 +6395,8 @@ jpeg_load_body (struct frame *f, struct image *img,
return 0;
}
IF_LINT (mgr->fp = fp);
/* Customize libjpeg's error handling to call my_error_exit when an
error is detected. This function will perform a longjmp. */
mgr->cinfo.err = fn_jpeg_std_error (&mgr->pub);
......@@ -6430,6 +6435,9 @@ jpeg_load_body (struct frame *f, struct image *img,
return 0;
}
/* Silence a bogus diagnostic; see GCC bug 54561. */
IF_LINT (fp = mgr->fp);
/* Create the JPEG decompression object. Let it read from fp.
Read the JPEG image header. */
fn_jpeg_CreateDecompress (&mgr->cinfo, JPEG_LIB_VERSION, sizeof *&mgr->cinfo);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment