emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Simplify internal_catch()


From: Paul Eggert
Subject: Re: Simplify internal_catch()
Date: Sat, 31 Dec 2016 13:29:06 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1

Stefan Monnier wrote:
At least I know Richard made me undo some "Lisp_Object foo = ..." years
ago, saying that we shouldn't do that because it fails to compile in
some cases (presumably when you used some specific compiler and you also
asked for Lisp_Object to be a union rather than an int).
I did not heed his advice very eagerly, to tell you the truth.

Many pre-C89 compilers indeed did not support union initializers (i.e., 'union u x = { something };', so perhaps there was some confusion about what worked and what didn't. Anyway, that water passed under the bridge long ago.

In reviewing this patch, I noticed some other confusion in this area that I introduced in 2013 while pacifying gcc -Wclobbered, and which I think you asked about but I didn't understand your question at the time (sorry). I attempted to fix the problem just now by installing the attached patch, which undoes Chris's simplification and then reworks the setjmp calls to use a local rather than a global. This avoid a need to load from a static variable in the normal flow of execution.

Attachment: 0001-Clarify-internal_catch-etc.txt
Description: Text document


reply via email to

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