Skip to content

Dialyzer crash on ill-typed code #6419

Closed
@RobinMorisset

Description

@RobinMorisset

On master, running dialyzer on the following code:

-module(dialyzer_fail).

f(<<X:[]>>) ->
    {}.

causes the following crash:

dialyzer: Analysis failed with error:
{{case_clause,[]},
 [{cerl,bitstr_bitsize,1,[{file,"cerl.erl"},{line,2388}]},
  {dialyzer_typesig,traverse,3,[{file,"dialyzer_typesig.erl"},{line,259}]},
  {dialyzer_typesig,traverse_list,4,
                    [{file,"dialyzer_typesig.erl"},{line,628}]},
  {dialyzer_typesig,traverse,3,[{file,"dialyzer_typesig.erl"},{line,245}]},
  {dialyzer_typesig,traverse_list,4,
                    [{file,"dialyzer_typesig.erl"},{line,628}]},
  {dialyzer_typesig,handle_clauses_1,7,
                    [{file,"dialyzer_typesig.erl"},{line,865}]},
  {dialyzer_typesig,handle_clauses,5,
                    [{file,"dialyzer_typesig.erl"},{line,838}]},
  {dialyzer_typesig,traverse,3,[{file,"dialyzer_typesig.erl"},{line,356}]}]}

I don't know whether this is considered a bug, or whether dialyzer is allowed to crash on code like that. I'll note that erlc shows warnings on that code, but successfully compiles it.

Metadata

Metadata

Assignees

Labels

bugIssue is reported as a bugteam:VMAssigned to OTP team VM

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions