Skip to content

[erlc] internal error in pass beam_ssa_codegen #7283

@RobinMorisset

Description

@RobinMorisset

Describe the bug
Running erlc on the following:

f(_V0, _V1 = _V0) when _V1; _V0 ->
    _V0#{ok := ok},
    try _V0 of
        _V1 ->
            _V1
    after
        ok
    end#{
        ok := ok
    }.

results in the following error message:

Function: f/2
/home/rmorisset/minimized/test168208.erl: internal error in pass beam_ssa_codegen:
exception error: no function clause matching beam_ssa_codegen:cg_instr(put_map,[{atom,exact},{atom,true},{atom,ok},{atom,ok}],{x,0}) 
  in function  beam_ssa_codegen:cg_block/3 (beam_ssa_codegen.erl, line 1381)
  in call from beam_ssa_codegen:cg_linear/2 (beam_ssa_codegen.erl, line 986)
  in call from beam_ssa_codegen:cg_linear/2 (beam_ssa_codegen.erl, line 987)
  in call from beam_ssa_codegen:cg_fun/3 (beam_ssa_codegen.erl, line 177)
  in call from beam_ssa_codegen:function/4 (beam_ssa_codegen.erl, line 129)
  in call from lists:mapfoldl_1/3 (lists.erl, line 1706)
  in call from beam_ssa_codegen:module/2 (beam_ssa_codegen.erl, line 51)

Affected versions
master

Additional context
I originally reported it as a possible duplicate of #6599, but @bjorng suggested filing it as a new issue instead.

Metadata

Metadata

Assignees

Labels

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

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions