summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2021-05-01 22:14:57 +0200
committerAndy Wingo <wingo@pobox.com>2021-05-01 22:16:40 +0200
commitd643913ac2705351fcd44c84d809219ef6375ec7 (patch)
treeb462668be4fd3d145f1818759be2527cc011b745
parent44a6a21dcc11d6da39d4548362cf63452a07bdbd (diff)
downloadguile-d643913ac2705351fcd44c84d809219ef6375ec7.tar.gz
Fix bug if call-with-prompt tag not a lexical
* module/language/tree-il/peval.scm (peval): peval could throw if the call-with-prompt operand wasn't a lexical. Terrible!
-rw-r--r--module/language/tree-il/peval.scm4
1 files changed, 2 insertions, 2 deletions
diff --git a/module/language/tree-il/peval.scm b/module/language/tree-il/peval.scm
index def423518..123b40384 100644
--- a/module/language/tree-il/peval.scm
+++ b/module/language/tree-il/peval.scm
@@ -1,6 +1,6 @@
;;; Tree-IL partial evaluator
-;; Copyright (C) 2011-2014, 2017, 2019, 2020 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2014, 2017, 2019, 2020, 2021 Free Software Foundation, Inc.
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -1650,7 +1650,7 @@ top-level bindings from ENV and return the resulting expression."
;; There is no way that an <abort> could know the tag
;; for this <prompt>, so we can elide the <prompt>
;; entirely.
- (unrecord-operand-uses op 1)
+ (when op (unrecord-operand-uses op 1))
(for-tail (if escape-only? body (make-call src body '())))))
(else
(let ((handler (for-value handler)))