summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/compiler.tl10
1 files changed, 6 insertions, 4 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index 34dc3128..9dbb1572 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -936,10 +936,12 @@
(arg me.(comp-call oreg env
(if (eq sym 'usr:apply) 'apply sym) args)))))
(ift me.(comp-ift oreg env form))
- (t (let ((fbind env.(lookup-fun sym)))
- me.(comp-call-impl oreg env (if fbind 'call 'gcall)
- (if fbind fbind.loc me.(get-fidx sym))
- args))))))
+ (t (let* ((fbind env.(lookup-fun sym))
+ (cfrag me.(comp-call-impl oreg env (if fbind 'call 'gcall)
+ (if fbind fbind.loc me.(get-fidx sym))
+ args)))
+ (pushnew sym cfrag.ffuns)
+ cfrag)))))
(defmeth compiler comp-call (me oreg env opcode args)
(tree-bind (fform . fargs) args