summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c4
-rw-r--r--src/lisp.h14
-rw-r--r--src/thread.c2
3 files changed, 12 insertions, 8 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 15735a298ad..edeed55e8be 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -61,7 +61,7 @@ struct buffer *all_buffers;
Setting the default value also goes through the alist of buffers
and stores into each buffer that does not say it has a local value. */
-struct buffer GCALIGNED buffer_defaults;
+struct GCALIGNED buffer buffer_defaults;
/* This structure marks which slots in a buffer have corresponding
default values in buffer_defaults.
@@ -84,7 +84,7 @@ struct buffer buffer_local_flags;
/* This structure holds the names of symbols whose values may be
buffer-local. It is indexed and accessed in the same way as the above. */
-struct buffer GCALIGNED buffer_local_symbols;
+struct GCALIGNED buffer buffer_local_symbols;
/* Return the symbol of the per-buffer variable at offset OFFSET in
the buffer structure. */
diff --git a/src/lisp.h b/src/lisp.h
index 1ce32f33420..e3262ad40f3 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -277,10 +277,14 @@ DEFINE_GDB_SYMBOL_END (VALMASK)
error !;
#endif
-/* Declare an object to have an address that is a multiple of
- GCALIGNMENT. This is a no-op if the object's natural alignment is
- already a multiple of GCALIGNMENT. alignas is not suitable here,
- as it fails if the object's natural alignment exceeds GCALIGNMENT. */
+/* Use GCALIGNED immediately after the 'struct' keyword to require the
+ struct to have an address that is a multiple of GCALIGNMENT. This
+ is a no-op if the struct's natural alignment is already a multiple
+ of GCALIGNMENT. GCALIGNED's implementation uses the 'aligned'
+ attribute instead of 'alignas (GCALIGNMENT)', as the latter would
+ fail if an object's natural alignment exceeds GCALIGNMENT. The
+ implementation hopes that natural alignment suffices on platforms
+ lacking 'aligned'. */
#ifdef HAVE_STRUCT_ATTRIBUTE_ALIGNED
# define GCALIGNED __attribute__ ((aligned (GCALIGNMENT)))
#else
@@ -2941,7 +2945,7 @@ CHECK_NUMBER_CDR (Lisp_Object x)
/* This version of DEFUN declares a function prototype with the right
arguments, so we can catch errors with maxargs at compile-time. */
#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc) \
- static struct Lisp_Subr GCALIGNED sname = \
+ static struct GCALIGNED Lisp_Subr sname = \
{ { PVEC_SUBR << PSEUDOVECTOR_AREA_BITS }, \
{ .a ## maxargs = fnname }, \
minargs, maxargs, lname, intspec, 0}; \
diff --git a/src/thread.c b/src/thread.c
index 03f5b31855e..7335833cf94 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -26,7 +26,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
#include "coding.h"
#include "syssignal.h"
-static struct thread_state GCALIGNED main_thread;
+static struct GCALIGNED thread_state main_thread;
struct thread_state *current_thread = &main_thread;