[erlang-patches] sys_core_fold forgets about aliases when marking bit string variables for context reusing

Anthony Ramine n.oxyde@REDACTED
Sat Nov 16 13:58:51 CET 2013


Finally I may have found one.

Tell me where I should write tests for that and I will add them.

	git fetch https://github.com/nox/otp.git core-clause-subst

	https://github.com/nox/otp/compare/erlang:maint...core-clause-subst
	https://github.com/nox/otp/compare/erlang:maint...core-clause-subst.patch

Regards,

-- 
Anthony Ramine

Le 16 nov. 2013 à 13:27, Anthony Ramine <n.oxyde@REDACTED> a écrit :

> Hello,
> 
> I have trying to fix a bug for a while without success so I post it here.
> 
> t(Bin1) ->
>    case Bin1 of
>        <<>> -> ok;
>        Bin2 ->
>            case Bin1 of
>                <<0>> -> ok;
>                _ -> Bin2
>            end
>    end.
> 
> In the following function, sys_core_fold fails to see that Bin2 is an alias of Bin1 and does not emit a bs_context_to_binary, making beam_validator crash quite violently:
> 
> t: function t/1+17:
>  Internal consistency check failed - please report this bug.
>  Instruction: return
>  Error:       {match_context,{x,0}}:
> 
> Regards,
> 
> -- 
> Anthony Ramine
> 




More information about the erlang-patches mailing list