emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 7910889 4/4: Port to IBM xlc 12.01


From: Paul Eggert
Subject: [Emacs-diffs] emacs-26 7910889 4/4: Port to IBM xlc 12.01
Date: Mon, 13 Nov 2017 13:17:00 -0500 (EST)

branch: emacs-26
commit 79108894dbcd642121466bb6af6c98c6a56e9233
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Port to IBM xlc 12.01
    
    Work around a compiler bug by using a separate enum for alignment.
    * src/alloc.c (roundup_size): Declare in a separate enum.
---
 src/alloc.c | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/src/alloc.c b/src/alloc.c
index 3b87195..88e24cf 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -2922,19 +2922,16 @@ set_next_vector (struct Lisp_Vector *v, struct 
Lisp_Vector *p)
 
 #define VECTOR_BLOCK_SIZE 4096
 
-enum
-  {
-    /* Alignment of struct Lisp_Vector objects.  Because pseudovectors
-       can contain any C type, align at least as strictly as
-       max_align_t.  On x86 and x86-64 this can waste up to 8 bytes
-       for typical vectors, since alignof (max_align_t) is 16 but
-       typical vectors need only an alignment of 8.  However, it is
-       not worth the hassle to avoid wasting those bytes.  */
-    vector_alignment = COMMON_MULTIPLE (alignof (max_align_t), GCALIGNMENT),
-
-    /* Vector size requests are a multiple of this.  */
-    roundup_size = COMMON_MULTIPLE (vector_alignment, word_size)
-  };
+/* Alignment of struct Lisp_Vector objects.  Because pseudovectors
+   can contain any C type, align at least as strictly as
+   max_align_t.  On x86 and x86-64 this can waste up to 8 bytes
+   for typical vectors, since alignof (max_align_t) is 16 but
+   typical vectors need only an alignment of 8.  However, it is
+   not worth the hassle to avoid wasting those bytes.  */
+enum {vector_alignment = COMMON_MULTIPLE (alignof (max_align_t), GCALIGNMENT)};
+
+/* Vector size requests are a multiple of this.  */
+enum { roundup_size = COMMON_MULTIPLE (vector_alignment, word_size) };
 
 /* Verify assumptions described above.  */
 verify (VECTOR_BLOCK_SIZE % roundup_size == 0);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]