[erlang-bugs] Guard clauses using not, binaries and andalso blows up the compiler chain

José Valim jose.valim@REDACTED
Sat Oct 27 12:16:40 CEST 2012


Hello everyone,

The following function cannot compile on Erlang R15B02:

    format(Datetime, << H, T / binary >>) when not ((H >= $a) andalso (H =<
$z)) andalso
        not ((H >= $A) andalso (H =< $Z)) ->
      { Datetime, T }.

Here is a snippet of the failure:



format_test.erl:none: internal error in v3_codegen;
crash reason: {{case_clause,

                {'EXIT',
                 {function_clause,
                  [{v3_codegen,bsm_rename_ctx,

I believe the current code to be valid Erlang and it should not blow up the
compiler chain. :)
Furthermore, simply adding other clauses to this function (without touching
it) makes the error go away.

I have put more information about the failure and a full sample module in a
gist: https://gist.github.com/dd4c1240a1510711b26a
I tried to further debug the issue, but I could not pinpoint exactly the
failure. Let me know if I can help any further.

Thanks for your time,

PS: I have sent this same e-mail one week ago but it didn't appear on the
erlang-bugs mailing list. So I am sending it again. Apologies if it appears
twice.

*
José Valim
www.plataformatec.com.br
Founder and Lead Developer
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20121027/f8c46ffa/attachment.htm>


More information about the erlang-bugs mailing list