aboutsummaryrefslogtreecommitdiff
path: root/src/interp/c-util.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/c-util.boot')
-rw-r--r--src/interp/c-util.boot3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index e9643db3..5cd74206 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -1321,6 +1321,9 @@ inlineDirectCall call ==
newparms := [gensym() for p in parms]
body := applySubst(pairList(parms,newparms),body)
applySubst!(pairList(newparms,call.args),body)
+ -- a non-side effect free argument used exactly once is OK.
+ parms is [p] and numOfOccurencesOf(p,body) = 1 =>
+ substitute(first call.args,p,body)
-- get cute later.
call
call