summaryrefslogtreecommitdiff
path: root/gcc/testsuite/melt/tletrec.melt
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/melt/tletrec.melt')
-rw-r--r--gcc/testsuite/melt/tletrec.melt29
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/melt/tletrec.melt b/gcc/testsuite/melt/tletrec.melt
new file mode 100644
index 00000000000..6638cf2ee73
--- /dev/null
+++ b/gcc/testsuite/melt/tletrec.melt
@@ -0,0 +1,29 @@
+; -*- lisp -*-
+;; file tletrec.melt
+
+#| run in buildir/gcc
+ ./cc1 -fmelt=runfile -fmelt-module-path=. -fmelt-source-path=.:$GCCMELTSOURCE/gcc/melt \
+ -fmelt-compile-script=./built-melt-cc-script \
+ -fmelt-tempdir=/tmp -fmelt-init=@warmelt2 \
+ -fmelt-arg=$GCCMELTSOURCE/gcc/testsuite/melt/tletrec.melt -fmelt-debug empty-file-for-melt.c
+|#
+
+(defun testletrec (u :long j)
+ (letrec (
+ (fa (lambda (x :long n)
+ (debug_msg x "x inside fa")
+ (if (<i n 0) x (fb x (-i n 1)))))
+ (fb (lambda (y :long p)
+ (debug_msg y "y inside fb")
+ (if (<=i p 0)
+ (make_tuple2 discr_multiple y tu)
+ (fa y (/i p 2)))))
+ (tu (tuple ii 'zz ll))
+ (ll (list ii '2))
+ (ii (instance class_container
+ :container_value ll))
+ )
+ (fa u j)
+ ))
+
+;; eof tletrec.melt \ No newline at end of file