diff options
| -rw-r--r-- | codegen.sml | 2 | ||||
| -rw-r--r-- | tests/05-let.sml | 4 | ||||
| -rw-r--r-- | tests/06-let-multiple.sml | 6 |
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 |
