diff options
Diffstat (limited to 'gcc/testsuite/melt/tletrec.melt')
-rw-r--r-- | gcc/testsuite/melt/tletrec.melt | 29 |
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 |