emacs-devel
[Top][All Lists]
Advanced

[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



reply via email to

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