[erlang-patches] sys_core_fold forgets about aliases when marking bit string variables for context reusing
Anthony Ramine
n.oxyde@REDACTED
Sun Dec 1 13:21:05 CET 2013
A PR was created by Henrik, it may as well be announced here…:
https://github.com/erlang/otp/pull/150
--
Anthony Ramine
Le 16 nov. 2013 à 13:58, Anthony Ramine <n.oxyde@REDACTED> a écrit :
> 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