Re: Fix renaming of bs_put_string instructions
Björn Gustavsson <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.bugs,gmane.comp.lang.erlang.patches |
|---|---|
| Message-ID | <CA+yh78SfkWhYn1oeo-2RF-7jCBnJCYa6FdhTtwhdVciK-t7HUg@mail.gmail.com> |
Looks good. Will be graduated after few days of testing in our daily build.s On Fri, May 24, 2013 at 9:10 PM, Anthony Ramine <[email protected]> wrote: > Hello, > > If an Erlang module is compiled to BEAM assembly and the result contains a > bs_put_string instruction, the output can't be compiled to binary anymore > and the compiler crashes with the following error: > > $ erlc prs.S > Function: compress/1 > prs.S:none: internal error in beam_block; > crash reason: {{case_clause, > {'EXIT', > {function_clause, > [{beam_utils,live_opt, > [[{bs_put_string,1,{string,[0]}}, > {bs_init, > {f,0}, > {bs_append,0,8,{field_flags,[]}}, > 0, > [{integer,8},{x,0}], > {x,1}}, > {label,2}], > 2, > {1,{1,1,nil,nil}}, > [{block, > [{'%live',2}, > {set,[{x,0}],[{x,1}],move}, > {'%live',1}]}, > return]], > [{file,"beam_utils.erl"},{line,639}]}, > {beam_utils,live_opt,1, > [{file,"beam_utils.erl"},{line,205}]}, > {beam_block,function,2, > [{file,"beam_block.erl"},{line,38}]}, > {lists,mapfoldl,3, > [{file,"lists.erl"},{line,1329}]}, > {beam_block,module,2, > [{file,"beam_block.erl"},{line,29}]}, > {compile,'-select_passes/2-anonymous-2-',2, > [{file,"compile.erl"},{line,476}]}, > {compile,'-internal_comp/4-anonymous-1-',2, > [{file,"compile.erl"},{line,276}]}, > {compile,fold_comp,3, > [{file,"compile.erl"},{line,294}]}]}}}, > [{compile,'-select_passes/2-anonymous-2-',2, > [{file,"compile.erl"},{line,476}]}, > {compile,'-internal_comp/4-anonymous-1-',2, > [{file,"compile.erl"},{line,276}]}, > {compile,fold_comp,3,[{file,"compile.erl"},{line,294}]}, > > {compile,internal_comp,4,[{file,"compile.erl"},{line,278}]}, > {compile,'-do_compile/2-anonymous-0-',2, > [{file,"compile.erl"},{line,152}]}]} > > > The clause was probably commented-out because at this point in the code, > no bs_put_string instruction has been generated yet when compiling from > Erlang. > > This bug was reported by Loïc Hoguin. > > git fetch https://github.com/nox/otp.gitfix-bs_put_string-renaming > > > https://github.com/nox/otp/compare/erlang:maint...fix-bs_put_string-renaming > > https://github.com/nox/otp/compare/erlang:maint...fix-bs_put_string-renaming.patch > > Regards, > > -- > Anthony Ramine > > _______________________________________________ > erlang-bugs mailing list > [email protected] > http://erlang.org/mailman/listinfo/erlang-bugs > -- Björn Gustavsson, Erlang/OTP, Ericsson AB _______________________________________________ erlang-bugs mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-bugs