mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-16 17:19:41 +00:00
Port cleanup attribute to Oracle Studio 12.5
* INSTALL (--with-modules): List cleanup attribute as prereq. * src/conf_post.h (__has_attribute_cleanup): Remove; no longer needed. * src/emacs-module.c (MODULE_SETJMP_1): Don’t attempt to verify (__has_attribute (cleanup)), as Oracle Studio 12.5 supports __has_attribute only inside preprocessor expressions. The C compiler should check the cleanup attribute in the next line anyway. (module_reset_handlerlist): Remove an unnecessary ‘const’ that causes Oracle Studio 12.5 to refuse to compile.
This commit is contained in:
parent
510a674280
commit
27bb4de72b
5
INSTALL
5
INSTALL
@ -322,8 +322,9 @@ typical 32-bit host, Emacs integers have 62 bits instead of 30.
|
||||
|
||||
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
|
||||
|
@ -61,7 +61,6 @@ typedef bool bool_bf;
|
||||
#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)
|
||||
|
@ -127,7 +127,7 @@ static void module_non_local_exit_signal_1 (emacs_env *,
|
||||
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
|
||||
@ -191,7 +191,6 @@ static struct emacs_env_private global_env_private;
|
||||
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)) \
|
||||
@ -1144,7 +1143,7 @@ mark_modules (void)
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user