diff options
author | Björn Gustavsson <[email protected]> | 2018-11-29 07:52:53 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-11-30 14:23:39 +0100 |
commit | c31902c4bb2d1a8e4ba4a8691581a22ea2daec43 (patch) | |
tree | b9053291bd8772b3bcb9f47a19a5ca038fd8d4aa | |
parent | 99267eabed747c8facbcfe057184396bf74491e1 (diff) | |
download | otp-c31902c4bb2d1a8e4ba4a8691581a22ea2daec43.tar.gz otp-c31902c4bb2d1a8e4ba4a8691581a22ea2daec43.tar.bz2 otp-c31902c4bb2d1a8e4ba4a8691581a22ea2daec43.zip |
beam_validator: Don't discard fragility
Be more careful when updating types so that fragility is not lost.
-rw-r--r-- | lib/compiler/src/beam_validator.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/compiler/src/beam_validator.erl b/lib/compiler/src/beam_validator.erl index 7d908df3bf..1945faba7f 100644 --- a/lib/compiler/src/beam_validator.erl +++ b/lib/compiler/src/beam_validator.erl @@ -1366,8 +1366,10 @@ kill_aliases(Reg, #st{aliases=Aliases0}=St) -> St end. -set_type(Type, {x,_}=Reg, Vst) -> set_type_reg(Type, Reg, Vst); -set_type(Type, {y,_}=Reg, Vst) -> set_type_y(Type, Reg, Vst); +set_type(Type, {x,_}=Reg, Vst) -> + set_type_reg(Type, Reg, Reg, Vst); +set_type(Type, {y,_}=Reg, Vst) -> + set_type_reg(Type, Reg, Reg, Vst); set_type(_, _, #vst{}=Vst) -> Vst. set_type_reg(Type, Src, Dst, Vst) -> |