summaryrefslogtreecommitdiff
path: root/src/lisp.h
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-11-08 19:24:06 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2017-11-08 19:24:06 -0800
commit00995c88dde4f8078a843b48faef16668a126d9c (patch)
treeeff0ed91f09522946ac7aaeae5ad1d2cfc93e7f7 /src/lisp.h
parentfae6cdc8ab0c9becd37afd9c31da56fecfad947b (diff)
parent9e59de9449b53c3ecd85b624c11360ba9cafee75 (diff)
downloademacs-00995c88dde4f8078a843b48faef16668a126d9c.tar.gz
emacs-00995c88dde4f8078a843b48faef16668a126d9c.tar.bz2
emacs-00995c88dde4f8078a843b48faef16668a126d9c.zip
Merge from origin/emacs-26
9e59de9449 Use GCALIGNED properly for GCC b9d7c90260 In f90.el, set fill-paragraph-function to a useful value # Conflicts: # src/lisp.h
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h14
1 files changed, 9 insertions, 5 deletions
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}; \