From f34897e34def565eb6e07461549ab2ba2e275e95 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 1 Jun 2014 23:08:49 -0700 Subject: [PATCH] Improve AIX-related merge from emacs-24. * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Fix comment. * lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're not on AIX; since we're on the trunk we can use enums more broadly. --- src/ChangeLog | 5 +++++ src/conf_post.h | 5 +---- src/lisp.h | 10 ---------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 2881574684c..c68adfcb5b1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2014-06-02 Paul Eggert + Improve AIX-related merge from emacs-24. + * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Fix comment. + * lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're + not on AIX; since we're on the trunk we can use enums more broadly. + * frame.c (x_set_frame_parameters): Don't read uninitialized storage. 2014-06-02 Jan Djärv diff --git a/src/conf_post.h b/src/conf_post.h index 9c82d7d2a71..a995acfd915 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -309,10 +309,7 @@ extern void _DebPrint (const char *fmt, ...); /* To use the struct hack with N elements, declare the struct like this: struct s { ...; t name[FLEXIBLE_ARRAY_MEMBER]; }; and allocate (offsetof (struct s, name) + N * sizeof (t)) bytes. - - This macro used to expand to something different on pre-C99 compilers. - IBM xlc 12.1 claims to do C99 but mishandles flexible array members. - FIXME: Remove it, and remove all uses. */ + IBM xlc 12.1 claims to do C99 but mishandles flexible array members. */ #ifdef __IBMC__ # define FLEXIBLE_ARRAY_MEMBER 1 #else diff --git a/src/lisp.h b/src/lisp.h index 028abe350c3..6d397169e87 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -59,16 +59,6 @@ INLINE_HEADER_BEGIN # define ENUMABLE(val) 0 #endif -/* On AIX 7.1 ENUMABLE should return true when possible, otherwise the - linker can optimize the symbols away, making it harder to debug. - This was discovered only late in the release process, so to play it - safe for now, non-AIX platforms do not use enums for debugging symbols. - FIXME: remove this comment and the following four lines of code. */ -#ifndef _AIX -# undef ENUMABLE -# define ENUMABLE(val) 0 -#endif - #define DEFINE_GDB_SYMBOL_ENUM(id) enum { id = id##_val }; #if defined MAIN_PROGRAM # define DEFINE_GDB_SYMBOL_BEGIN(type, id) type const id EXTERNALLY_VISIBLE -- 2.39.2