summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2009-08-26 02:56:05 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2009-08-26 02:56:05 +0000
commit8476cfaf3dadf04379fde65cd7e24820151f78a9 (patch)
tree2ff01d71b451dc1c1d6068a023bf2fb95403ff2b /lisp/emacs-lisp
parent78176e6906407f76a016246a001a570ac7b21d9a (diff)
downloademacs-8476cfaf3dadf04379fde65cd7e24820151f78a9.tar.gz
emacs-8476cfaf3dadf04379fde65cd7e24820151f78a9.tar.bz2
emacs-8476cfaf3dadf04379fde65cd7e24820151f78a9.zip
(byte-compile-lapcode): Signal overflow.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/bytecomp.el4
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index b8e63a4f5f8..f1561c0b279 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -854,7 +854,9 @@ otherwise pop it")
(t ; Absolute jump
(setq pc (car (cdr (car bytes)))) ; Pick PC from tag
(setcar (cdr bytes) (logand pc 255))
- (setcar bytes (lsh pc -8))))
+ (setcar bytes (lsh pc -8))
+ ;; FIXME: Replace this by some workaround.
+ (if (> (car bytes) 255) (error "Bytecode overflow"))))))
(setq patchlist (cdr patchlist))))
(apply 'unibyte-string (nreverse bytes))))