[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-memb
From: |
David Kastrup |
Subject: |
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member |
Date: |
Tue, 13 Oct 2015 12:26:11 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Eli Zaretskii <address@hidden> writes:
>> From: Stefan Monnier <address@hidden>
>> Cc: Eli Zaretskii <address@hidden>
>> Date: Mon, 12 Oct 2015 21:07:00 -0400
>>
>> > Attempt to avoid crashes in plist-member
>>
>> > * src/fns.c (Fplist_member): Don't call QUIT between a CONSP test
>> > and a call to XCDR. (Bug#21655)
>>
>> I have no objection to the patch itself, but I must say that I wonder
>> how it can avoid crashes. IOW why would calling QUIT between a CONSP test
>> and a call to XCDR be dangerous?
>
> QUIT could call some Lisp.
Sure, but it would not return. So the XCDR should not be an issue.
> How else would you explain a segfault in that loop?
Have you configured with
--no-thread-jumps
?
'-fthread-jumps'
Perform optimizations that check to see if a jump branches to a
location where another comparison subsumed by the first is found.
If so, the first branch is redirected to either the destination of
the second branch or a point immediately following it, depending on
whether the condition is known to be true or false.
Enabled at levels '-O2', '-O3', '-Os'.
Because when jumps/calls are threaded, most particularly to functions
the compiler knows not to return, the backtraces may point to unrelated
code and with nonsensical local variable settings.
--
David Kastrup
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member, Andreas Schwab, 2015/10/15
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member,
David Kastrup <=
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member, Eli Zaretskii, 2015/10/13