aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2019-01-24 14:43:09 +0100
committerJohn Högberg <[email protected]>2019-01-24 14:43:22 +0100
commitbd6a3d3c574644151ecc4d919673bb0526c94bd0 (patch)
tree0859df3c3171cfab6adf7f9733a549ea1ccbfca5 /lib/compiler/src
parenta0104bc16c8c6f57c2725d07b811bf3bcb0a2455 (diff)
downloadotp-bd6a3d3c574644151ecc4d919673bb0526c94bd0.tar.gz
otp-bd6a3d3c574644151ecc4d919673bb0526c94bd0.tar.bz2
otp-bd6a3d3c574644151ecc4d919673bb0526c94bd0.zip
Make the beam_validator smarter again, again
The fix in f9ea85611faca82c7494449ddb8bcb1ef1d194cb didn't consider that the tested register could be aliased.
Diffstat (limited to 'lib/compiler/src')
-rw-r--r--lib/compiler/src/beam_validator.erl2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/compiler/src/beam_validator.erl b/lib/compiler/src/beam_validator.erl
index 15ed267c54..4081e366a5 100644
--- a/lib/compiler/src/beam_validator.erl
+++ b/lib/compiler/src/beam_validator.erl
@@ -871,7 +871,7 @@ valfun_4({test,is_map,{f,Lbl},[Src]}, Vst0) ->
valfun_4({test,is_nil,{f,Lbl},[Src]}, Vst0) ->
Vst = case get_term_type(Src, Vst0) of
list ->
- branch_state(Lbl, set_type_reg(cons, Src, Vst0));
+ branch_state(Lbl, set_aliased_type(cons, Src, Vst0));
_ ->
branch_state(Lbl, Vst0)
end,