changeset 5642:5bda701e9e7c

Be more careful about non-quoted-symbol TAGs, #'byte-compile-catch lisp/ChangeLog addition: 2012-01-14 Aidan Kehoe <kehoea@parhasard.net> * bytecomp.el (byte-compile-catch): Be more careful about non-quoted-symbol TAGs here; thank you Robert Pluim in CAMTcmTeLaZVrABnP-1MRUA3ZpZ=h2S_YVxKWDDNuc5bAyJD-gg@mail.gmail.com ! tests/ChangeLog addition: 2012-01-14 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Check that `byte-compile-catch' doesn't strip keyword (as such, non-quoted) TAGs.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 14 Jan 2012 12:16:05 +0000
parents f4d74be74462
children 611a6845ebee
files lisp/ChangeLog lisp/bytecomp.el tests/ChangeLog tests/automated/lisp-tests.el
diffstat 4 files changed, 20 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Jan 11 16:38:50 2012 -0700
+++ b/lisp/ChangeLog	Sat Jan 14 12:16:05 2012 +0000
@@ -1,4 +1,11 @@
- 2012-01-08  Vin Shelton  <acs@xemacs.org>
+2012-01-14  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* bytecomp.el (byte-compile-catch):
+	Be more careful about non-quoted-symbol TAGs here; thank you
+	Robert Pluim in
+	CAMTcmTeLaZVrABnP-1MRUA3ZpZ=h2S_YVxKWDDNuc5bAyJD-gg@mail.gmail.com !
+
+2012-01-08  Vin Shelton  <acs@xemacs.org>
 
 	* cus-face.el: autoload custom-set-face-bold.
 
--- a/lisp/bytecomp.el	Wed Jan 11 16:38:50 2012 -0700
+++ b/lisp/bytecomp.el	Sat Jan 14 12:16:05 2012 +0000
@@ -4382,8 +4382,9 @@
 optimized away--just byte compile and return the BODY."
   (let* ((symbol (car-safe (cdr-safe (nth 1 form))))
 	 (not-present '#:not-present)
-	 (block (and symbol (symbolp symbol)
-		     (get symbol 'cl-block-name not-present)))
+	 (block (cond ((null symbol) not-present)
+                      ((not (symbolp symbol)) not-present)
+                      (t (get symbol 'cl-block-name not-present))))
 	 (elt (and (not (eq block not-present)) (list block)))
 	 (byte-compile-active-blocks
 	  (if elt
--- a/tests/ChangeLog	Wed Jan 11 16:38:50 2012 -0700
+++ b/tests/ChangeLog	Sat Jan 14 12:16:05 2012 +0000
@@ -1,3 +1,9 @@
+2012-01-14  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* automated/lisp-tests.el:
+	Check that `byte-compile-catch' doesn't strip keyword (as such,
+	non-quoted) TAGs.
+
 2012-01-01  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* automated/completion-tests.el: New.
--- a/tests/automated/lisp-tests.el	Wed Jan 11 16:38:50 2012 -0700
+++ b/tests/automated/lisp-tests.el	Sat Jan 14 12:16:05 2012 +0000
@@ -2911,6 +2911,9 @@
    (Assert (eql 0 (needs-lexical-context 2 nil nil))
            "the function special operator doesn't create a lexical context.")))
 
+(Assert (eql 10 (catch ':keyword (+ (catch :keyword (throw :keyword 9)) 1)))
+        "checking `byte-compile-catch' doesn't strip keyword TAGs")
+
 ;; Test symbol-macrolet with symbols with identical string names.
 
 (macrolet