[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r118080: * lisp.h (USE_STACK_STRING): Now true only
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] trunk r118080: * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS. |
Date: |
Thu, 09 Oct 2014 06:54:16 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 118080
revision-id: address@hidden
parent: address@hidden
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Wed 2014-10-08 23:54:10 -0700
message:
* lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS.
On x86 platforms this works around GCC bug 63495
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63495>,
and more generally should fix a portability problem in Emacs.
Problem reported by Stefan Monnier in:
http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/lisp.h lisp.h-20091113204419-o5vbwnq5f7feedwu-253
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-10-09 04:23:09 +0000
+++ b/src/ChangeLog 2014-10-09 06:54:10 +0000
@@ -1,3 +1,12 @@
+2014-10-09 Paul Eggert <address@hidden>
+
+ * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS.
+ On x86 platforms this works around GCC bug 63495
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63495>,
+ and more generally should fix a portability problem in Emacs.
+ Problem reported by Stefan Monnier in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html
+
2014-10-08 Leo Liu <address@hidden>
Enhance terpri to allow conditionally output a newline. (Bug#18652)
=== modified file 'src/lisp.h'
--- a/src/lisp.h 2014-10-02 12:27:19 +0000
+++ b/src/lisp.h 2014-10-09 06:54:10 +0000
@@ -4615,13 +4615,16 @@
double d; intmax_t i; void *p;
};
-/* True for stack-based cons and string implementations. */
+/* True for stack-based cons and string implementations, respectively.
+ Use stack-based strings only if stack-based cons also works.
+ Otherwise, STACK_CONS would create heap-based cons cells that
+ could point to stack-based strings, which is a no-no. */
enum
{
USE_STACK_CONS = (USE_STACK_LISP_OBJECTS
&& alignof (union Aligned_Cons) % GCALIGNMENT == 0),
- USE_STACK_STRING = (USE_STACK_LISP_OBJECTS
+ USE_STACK_STRING = (USE_STACK_CONS
&& alignof (union Aligned_String) % GCALIGNMENT == 0)
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r118080: * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS.,
Paul Eggert <=