Skip to content

[erlc] internal error in pass beam_ssa_pre_codegen, sub pass reserve_regs #6660

@RobinMorisset

Description

@RobinMorisset

On master,

f() ->
    fun(X) ->
        try X of
            <<Y/bytes>> ->
                Y
        after
            ok
        end
    end.

crashes erlc with the message:

Sub pass reserve_regs
Function: '-f/0-fun-0-'/1
minimized/pre_codegen2.erl: internal error in pass beam_ssa_pre_codegen:
exception error: no function clause matching beam_ssa_codegen:classify_heap_need(bs_extract) 
  in function  beam_ssa_pre_codegen:res_place_gc_instrs/2 (beam_ssa_pre_codegen.erl, line 2711)
  in call from beam_ssa_pre_codegen:reserve_xregs/4 (beam_ssa_pre_codegen.erl, line 2683)
  in call from beam_ssa_pre_codegen:reserve_regs/1 (beam_ssa_pre_codegen.erl, line 2559)
  in call from compile:run_sub_passes_1/3 (compile.erl, line 422)
  in call from beam_ssa_pre_codegen:function/2 (beam_ssa_pre_codegen.erl, line 160)
  in call from beam_ssa_pre_codegen:functions/2 (beam_ssa_pre_codegen.erl, line 89)
  in call from beam_ssa_pre_codegen:functions/2 (beam_ssa_pre_codegen.erl, line 89)

This also reproduces with #6651.

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions