Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Demonstrating the bug.
- The hipe_bug.S file was generated using the new SSA-based compiler.
- Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
- Eshell V10.0 (abort with ^G)
- 1> c(hipe_bug, [from_asm,native]), hipe_bug:run().
- ** exception error: {badmap,{cons,{arg,0},nil}}
- in function hipe_bug:dig_out_fc/1
- 2> c(hipe_bug, [from_asm]), hipe_bug:run().
- {cons,{arg,0},nil}
- 3>
- The problem seems to be in the following instruction:
- {get_map_elements,{f,5},
- {x,0},
- {list,[{literal,{x,1}},{x,0},{literal,{x,0}},{x,1}]}}.
- Note that the source register for the map ({x,0}) is also one of the destinations.
- BEAM has no problem with this, as it executes the instruction atomically.
Add Comment
Please, Sign In to add comment