diff options
author | Magnus Lång <[email protected]> | 2015-11-20 15:28:05 +0100 |
---|---|---|
committer | Magnus Lång <[email protected]> | 2015-11-27 18:18:38 +0100 |
commit | 4ce3f357aca2b418dda22ce5434b080ba41ffa45 (patch) | |
tree | ae8a323b10fdead351963c78bacad86a381b74d3 /lib/hipe/rtl/hipe_rtl_binary.erl | |
parent | fa4cc49b0e64b655a167a5daceb2f16252102fc6 (diff) | |
download | otp-4ce3f357aca2b418dda22ce5434b080ba41ffa45.tar.gz otp-4ce3f357aca2b418dda22ce5434b080ba41ffa45.tar.bz2 otp-4ce3f357aca2b418dda22ce5434b080ba41ffa45.zip |
hipe: Fix binary constructions failing with badarith
Expressions like <<0:(fun(X)->X end(anka))>> would fail with 'badarith'
in HiPE, but 'badarg' in BEAM.
hipe_beam_to_icode was attempting to optimise the amount of code
generated by letting the arithmetic error propagate instead of
catching it. However, since it was emitting a block to throw 'badarg' in
that case anyway, we can just reuse it to achieve just as compact code
that behaves exactly like BEAM.
Diffstat (limited to 'lib/hipe/rtl/hipe_rtl_binary.erl')
0 files changed, 0 insertions, 0 deletions