[erlang-bugs] More compiler errors

Anthony Ramine n.oxyde@REDACTED
Sat Mar 1 14:18:04 CET 2014


So many bugs I could find and play with, had I a quickcheck license…

-- 
Anthony Ramine

Le 28 févr. 2014 à 14:05, Ulf Norell <ulf.norell@REDACTED> a écrit :

> I ran some more quickcheck tests and found a few more bugs. These are all tested on R17-rc1:
> 
> -module(bug1).
> f() when erlang:'andalso'(true, true) ->
>   ok.
> 
> -module(bug2).
> f(X) when erlang:'and'(bad, X) ->
>   ok.
> 
> -module(bug3).
> f(Rec, Tag) ->
>   erlang:is_record(Rec, Tag, 1) orelse error.
> 
> -module(bug4).
> f(_) ->
>   (fun f/1)().
> 
> Output:
> 
> $ erl
> Erlang/OTP 17 [RELEASE CANDIDATE 1] [erts-6.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
> 
> Eshell V6.0  (abort with ^G)
> 1> c(bug1).
> Function: f/0
> bug1.erl: internal error in v3_codegen;
> crash reason: {case_clause,{'EXIT',{{badmatch,{remote,{atom,erlang},{atom,'andalso'}}},
>                       [{v3_codegen,call_cg,7,
>                                    [{file,"v3_codegen.erl"},{line,1105}]},
>                        {v3_codegen,guard_cg,5,
>                                    [{file,"v3_codegen.erl"},{line,1002}]},
>                        {v3_codegen,'-guard_cg_list/6-anonymous-0-',4,
>                                    [{file,"v3_codegen.erl"},{line,1045}]},
>                        {v3_codegen,flatmapfoldl,3,
>                                    [{file,"v3_codegen.erl"},{line,2222}]},
>                        {v3_codegen,guard_cg_list,6,
>                                    [{file,"v3_codegen.erl"},{line,1043}]},
>                        {v3_codegen,protected_cg,7,
>                                    [{file,"v3_codegen.erl"},{line,1015}]},
>                        {v3_codegen,guard_clause_cg,4,
>                                    [{file,"v3_codegen.erl"},{line,982}]},
>                        {v3_codegen,match_cg,5,
>                                    [{file,"v3_codegen.erl"},{line,282}]}]}}}
> 
>   in function  compile:'-select_passes/2-anonymous-2-'/2 (compile.erl, line 494)
>   in call from compile:'-internal_comp/4-anonymous-1-'/2 (compile.erl, line 290)
>   in call from compile:fold_comp/3 (compile.erl, line 308)
>   in call from compile:internal_comp/4 (compile.erl, line 292)
>   in call from compile:'-do_compile/2-anonymous-0-'/2 (compile.erl, line 153)
> bug1.erl:2: Warning: function f/0 is unused
> error
> 2> c(bug2).
> Function: f/1
> bug2.erl: internal error in beam_bool;
> crash reason: {case_clause,
>     {'EXIT',
>         {function_clause,
>             [{beam_bool,bopt_cg,
>                  [{atom,bad},
>                   5,
>                   [{0,{x,0}}],
>                   [],
>                   {st,100000000,
>                       {3,
>                        {2,
>                         [{block,
>                              [{set,
>                                   [{x,1}],
>                                   [{atom,bad},{x,0}],
>                                   {bif,'and',{f,5}}}]},
>                          {test,is_eq_exact,{f,5},[{x,1},{atom,true}]},
>                          {block,[{set,[{x,0}],[{atom,ok}],move}]},
>                          return,
>                          {label,5},
>                          {jump,{f,1}},
>                          return],
>                         {1,
>                          [{line,[{location,"bug2.erl",3}]},
>                           {func_info,{atom,bug2},{atom,f},1},
>                           {label,2},
>                           {block,
>                               [{set,
>                                    [{x,1}],
>                                    [{atom,bad},{x,0}],
>                                    {bif,'and',{f,5}}}]},
>                           {test,is_eq_exact,{f,5},[{x,1},{atom,true}]},
>                           {block,[{set,[{x,0}],[{atom,ok}],move}]},
>                           return,
>                           {label,5},
>                           {jump,{f,1}},
>                           return],
>                          nil,nil},
>                         {5,[{jump,{f,1}},return],nil,nil}}}}],
>                  [{file,"beam_bool.erl"},{line,505}]},
>              {beam_bool,bopt_cg_and,5,[{file,"beam_bool.erl"},{line,552}]},
>              {beam_bool,bopt_block,5,[{file,"beam_bool.erl"},{line,115}]},
>              {beam_bool,bopt,3,[{file,"beam_bool.erl"},{line,76}]},
>              {beam_bool,function,2,[{file,"beam_bool.erl"},{line,57}]},
>              {lists,mapfoldl,3,[{file,"lists.erl"},{line,1339}]},
>              {beam_bool,module,2,[{file,"beam_bool.erl"},{line,36}]},
>              {compile,'-select_passes/2-anonymous-2-',2,
>                  [{file,"compile.erl"},{line,494}]}]}}}
> 
>   in function  io_lib_pretty:cind_tag_tuple/7 (io_lib_pretty.erl, line 636)
>   in call from io_lib_pretty:cind_element/7 (io_lib_pretty.erl, line 725)
>   in call from io_lib_pretty:cind_list/7 (io_lib_pretty.erl, line 695)
>   in call from io_lib_pretty:cind_element/7 (io_lib_pretty.erl, line 725)
>   in call from io_lib_pretty:cind_list/7 (io_lib_pretty.erl, line 695)
>   in call from io_lib_pretty:cind_element/7 (io_lib_pretty.erl, line 725)
>   in call from io_lib_pretty:cind_list/7 (io_lib_pretty.erl, line 695)
>   in call from io_lib_pretty:cind_element/7 (io_lib_pretty.erl, line 725)
> bug2.erl:3: Warning: function f/1 is unused
> error
> 3> c(bug3).
> Function: f/2
> bug3.erl: internal error in v3_codegen;
> crash reason: {case_clause,{'EXIT',{{badmatch,{remote,{atom,erlang},{atom,is_record}}},
>                       [{v3_codegen,call_cg,7,
>                                    [{file,"v3_codegen.erl"},{line,1105}]},
>                        {v3_codegen,guard_cg,5,
>                                    [{file,"v3_codegen.erl"},{line,1002}]},
>                        {v3_codegen,'-guard_cg_list/6-anonymous-0-',4,
>                                    [{file,"v3_codegen.erl"},{line,1045}]},
>                        {v3_codegen,flatmapfoldl,3,
>                                    [{file,"v3_codegen.erl"},{line,2222}]},
>                        {v3_codegen,guard_cg_list,6,
>                                    [{file,"v3_codegen.erl"},{line,1043}]},
>                        {v3_codegen,protected_cg,7,
>                                    [{file,"v3_codegen.erl"},{line,1015}]},
>                        {v3_codegen,guard_clause_cg,4,
>                                    [{file,"v3_codegen.erl"},{line,982}]},
>                        {v3_codegen,match_cg,5,
>                                    [{file,"v3_codegen.erl"},{line,282}]}]}}}
> 
>   in function  compile:'-select_passes/2-anonymous-2-'/2 (compile.erl, line 494)
>   in call from compile:'-internal_comp/4-anonymous-1-'/2 (compile.erl, line 290)
>   in call from compile:fold_comp/3 (compile.erl, line 308)
>   in call from compile:internal_comp/4 (compile.erl, line 292)
>   in call from compile:'-do_compile/2-anonymous-0-'/2 (compile.erl, line 153)
> bug3.erl:2: Warning: function f/2 is unused
> error
> 4> c(bug4).
> Function f/1 refers to undefined label 5
> bug4.erl: internal error in beam_dead;
> crash reason: {case_clause,{'EXIT',{undefined_label,5}}}
> 
>   in function  compile:'-select_passes/2-anonymous-2-'/2 (compile.erl, line 494)
>   in call from compile:'-internal_comp/4-anonymous-1-'/2 (compile.erl, line 290)
>   in call from compile:fold_comp/3 (compile.erl, line 308)
>   in call from compile:internal_comp/4 (compile.erl, line 292)
>   in call from compile:'-do_compile/2-anonymous-0-'/2 (compile.erl, line 153)
> bug4.erl:2: Warning: function f/1 is unused
> error
> 
> / Ulf
> 
> _______________________________________________
> erlang-bugs mailing list
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs




More information about the erlang-bugs mailing list