Use --with-cairo to compile Emacs with Cairo drawing.
-Use --with-modules to build Emacs with support for loading dynamic
-modules.
+Use --with-modules to build Emacs with support for dynamic modules.
+This needs a C compiler that supports '__attribute__ ((cleanup (...)))',
+as in GCC 3.4 and later.
Use --enable-gcc-warnings to enable compile-time checks that warn
about possibly-questionable C code. This is intended for developers
#ifndef __has_attribute
# define __has_attribute(a) __has_attribute_##a
# define __has_attribute_alloc_size GNUC_PREREQ (4, 3, 0)
-# define __has_attribute_cleanup GNUC_PREREQ (3, 4, 0)
# define __has_attribute_externally_visible GNUC_PREREQ (4, 1, 0)
# define __has_attribute_no_address_safety_analysis false
# define __has_attribute_no_sanitize_address GNUC_PREREQ (4, 8, 0)
static void module_non_local_exit_throw_1 (emacs_env *,
Lisp_Object, Lisp_Object);
static void module_out_of_memory (emacs_env *);
-static void module_reset_handlerlist (struct handler *const *);
+static void module_reset_handlerlist (struct handler **);
/* We used to return NULL when emacs_value was a different type from
Lisp_Object, but nowadays we just use Qnil instead. Although they
module_out_of_memory (env); \
return retval; \
} \
- verify (__has_attribute (cleanup)); \
struct handler *c __attribute__ ((cleanup (module_reset_handlerlist))) \
= c0; \
if (sys_setjmp (c->jmp)) \
function to be called automatically. PHANDLERLIST points to a word
containing the handler list, for sanity checking. */
static void
-module_reset_handlerlist (struct handler *const *phandlerlist)
+module_reset_handlerlist (struct handler **phandlerlist)
{
eassert (handlerlist == *phandlerlist);
handlerlist = handlerlist->next;