diff options
author | Björn Gustavsson <[email protected]> | 2010-04-07 13:18:24 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-04-07 13:25:02 +0200 |
commit | fd9bb9fb7323ead417fff0cbb7a077b342446a77 (patch) | |
tree | 6841f2c97ce249bc44ec7d4485cd533ae7690df6 /erts/emulator/beam/ops.tab | |
parent | 6fd69d6ca5cea3aae4afce7544ba6b729221885c (diff) | |
download | otp-fd9bb9fb7323ead417fff0cbb7a077b342446a77.tar.gz otp-fd9bb9fb7323ead417fff0cbb7a077b342446a77.tar.bz2 otp-fd9bb9fb7323ead417fff0cbb7a077b342446a77.zip |
erts: Fix loading of modules with invalid floating point arithmetic
The following program is supposed to cause an exception
at run-time:
foo() ->
Sum1 = Sum2 = N = 2,
pSum - (Sum1*(Sum2/N)).
but the loader fails to load because it contains the
following instruction:
fconv {atom,pSum} {fr,2}
Fix the loader so that it can handle fconv instructions
where the first operand is a non-numeric literal.
Reported-by: Torbjörn Törnkvist
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r-- | erts/emulator/beam/ops.tab | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index 231ea34fd5..9e8ac74f40 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -1304,7 +1304,7 @@ fmul p FR1 FR2 FR3 => i_fmul FR1 FR2 FR3 fdiv p FR1 FR2 FR3 => i_fdiv FR1 FR2 FR3 fnegate p FR1 FR2 => i_fnegate FR1 FR2 -fconv Int=iq Dst=l => move Int x | fconv x Dst +fconv Arg=iqan Dst=l => move Arg x | fconv x Dst fmove q l fmove d l |