diff options
author | Björn Gustavsson <[email protected]> | 2019-05-09 13:22:24 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-05-14 16:11:55 +0200 |
commit | 119e72d3e766089dc7347b75d0530b0c626cff93 (patch) | |
tree | 7fa969e90ee393d54fb641747312ea516b9929bd /plt | |
parent | 7611d65a46ce2a811890085f166799701f6bba2b (diff) | |
download | otp-119e72d3e766089dc7347b75d0530b0c626cff93.tar.gz otp-119e72d3e766089dc7347b75d0530b0c626cff93.tar.bz2 otp-119e72d3e766089dc7347b75d0530b0c626cff93.zip |
Fix compiler crash when funs were matched
Code such as the following would crash the compiler in OTP 22:
[some_atom = fun some_function/1]
The reason is that the fun would be copied (used both in the match
operation and as a value in the list), and the copy of the fun would
create two wrapper functions with the same name for calling
some_function/1. In OTP 21, the duplicate functions happened not to
cause any harm (one of the wrappers functions would be unused and
ultimately be removed by beam_clean). In OTP 22, the new beam_ssa_type
pass would be confused by the multiple definitions of the wrapper
function.
Diffstat (limited to 'plt')
0 files changed, 0 insertions, 0 deletions