summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--codegen.sml2
-rw-r--r--tests/05-let.sml4
-rw-r--r--tests/06-let-multiple.sml6
3 files changed, 11 insertions, 1 deletions
diff --git a/codegen.sml b/codegen.sml
index befedac..c7f0f2d 100644
--- a/codegen.sml
+++ b/codegen.sml
@@ -124,7 +124,7 @@ struct
foldl
(fn (off, (arg, ops)) =>
(Syntax.VVar tempReg, Syntax.OPeek (tempReg, off, translateVal arg) :: ops))
- (arg, [])
+ (translateVal arg, [])
path
in rev (Syntax.OPoke (i, translate res, temp) :: ops)
end)
diff --git a/tests/05-let.sml b/tests/05-let.sml
new file mode 100644
index 0000000..d1c27f5
--- /dev/null
+++ b/tests/05-let.sml
@@ -0,0 +1,4 @@
+val _ =
+ let val x = 42 in
+ __builtin "exit" x
+ end
diff --git a/tests/06-let-multiple.sml b/tests/06-let-multiple.sml
new file mode 100644
index 0000000..47441ac
--- /dev/null
+++ b/tests/06-let-multiple.sml
@@ -0,0 +1,6 @@
+val _ =
+ let
+ val x = 42
+ val y = x
+ in __builtin "exit" y
+ end