diff options
| author | Roy Frostig <[email protected]> | 2010-07-25 21:27:28 -0700 |
|---|---|---|
| committer | Roy Frostig <[email protected]> | 2010-07-25 21:27:28 -0700 |
| commit | 7ef9e82f51de73e89759910fd1b45ce5ccc363b3 (patch) | |
| tree | 6a5575cb416ae20feaa18a4cf642c176eebf0389 /src/boot/be/x86.ml | |
| parent | Another quick fix from jmuizelaar for that "some ocaml versions dont't notice... (diff) | |
| download | rust-7ef9e82f51de73e89759910fd1b45ce5ccc363b3.tar.xz rust-7ef9e82f51de73e89759910fd1b45ce5ccc363b3.zip | |
Don't write to NULL after calling C natives returning void.
Diffstat (limited to 'src/boot/be/x86.ml')
| -rw-r--r-- | src/boot/be/x86.ml | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/boot/be/x86.ml b/src/boot/be/x86.ml index d5541eb1..0d0206d7 100644 --- a/src/boot/be/x86.ml +++ b/src/boot/be/x86.ml @@ -700,7 +700,7 @@ let emit_native_void_call let emit_native_call_in_thunk (e:Il.emitter) - (ret:Il.cell) + (ret:Il.cell option) (nabi:nabi) (fn:Il.operand) (args:Il.operand array) @@ -734,9 +734,12 @@ let emit_native_call_in_thunk end; match ret with - Il.Reg (r, _) -> mov (word_at r) (ro eax) - | _ -> mov (rc edx) (c ret); + Some (Il.Reg (r, _)) -> + mov (word_at r) (ro eax) + | Some ret -> + mov (rc edx) (c ret); mov (word_at (h edx)) (ro eax) + | _ -> () ;; |