You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The compiler crashes like this when compiling the module shown below:
Sub pass ssa_opt_private_append
beam_ssa_private_append_crash.erl: internal error in pass beam_ssa_opt:
exception error: no function clause matching beam_ssa_private_append:patch_literal_term([],[self],5)
in function beam_ssa_private_append:patch_appends_ret/3 (beam_ssa_private_append.erl, line 462)
in call from beam_ssa_private_append:patch_appends_f/5 (beam_ssa_private_append.erl, line 416)
in call from beam_ssa_private_append:'-patch_appends/3-anonymous-2-'/3 (beam_ssa_private_append.erl, line 390)
in call from maps:fold_1/4 (maps.erl, line 416)
in call from beam_ssa_private_append:private_append/3 (beam_ssa_private_append.erl, line 72)
in call from compile:run_sub_passes_1/3 (compile.erl, line 424)
in call from beam_ssa_opt:run_phases/3 (beam_ssa_opt.erl, line 75)
@frej Yes, of course. It's not urgent. Sorry for not making that clear. Bug fixes for minor bugs will be included in the second release candidate, not the the first.
frej
added a commit
to frej/otp
that referenced
this issue
Feb 15, 2023
Avoid a crash in the private-append optimization due to attempting to
rewrite a literal which isn't a bitstring.
As value tracking is done without type information, it can happen that
when following def chains, we encounter literals which are not
bitstrings. We should never schedule a literal which isn't a bitstring
for rewriting when the complete literal is what we are tracking,
i.e. when the element is `self`.
Closeserlang#6847
Describe the bug
The compiler crashes like this when compiling the module shown below:
To Reproduce
Compile the following module:
Expected behavior
The compilation should succeed.
Affected versions
The current
master
branch.The text was updated successfully, but these errors were encountered: