aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2019-06-12 09:51:20 +0200
committerErlang/OTP <[email protected]>2019-06-12 09:51:20 +0200
commit9fbc06998e2165b0ba33274eb659794999b1577c (patch)
tree668c246d349968225847a375f707e4bc3cc08e3a /lib/compiler/src
parentfc375a6d56ecd706db43173d8347f086be233188 (diff)
parenta726c015867beffe15cc20ee22e32778678e8fdf (diff)
downloadotp-9fbc06998e2165b0ba33274eb659794999b1577c.tar.gz
otp-9fbc06998e2165b0ba33274eb659794999b1577c.tar.bz2
otp-9fbc06998e2165b0ba33274eb659794999b1577c.zip
Merge branch 'john/compiler/fix-bad-bitstring-type-opt/OTP-15872' into maint-22
* john/compiler/fix-bad-bitstring-type-opt/OTP-15872: beam_ssa_type: Fix incorrect bitstring unit determination
Diffstat (limited to 'lib/compiler/src')
-rw-r--r--lib/compiler/src/beam_ssa_type.erl11
1 files changed, 2 insertions, 9 deletions
diff --git a/lib/compiler/src/beam_ssa_type.erl b/lib/compiler/src/beam_ssa_type.erl
index 57fd7fec60..68920e7dd3 100644
--- a/lib/compiler/src/beam_ssa_type.erl
+++ b/lib/compiler/src/beam_ssa_type.erl
@@ -840,15 +840,8 @@ type({bif,Bif}, Args, Ts, _Ds) ->
Type ->
Type
end;
-type(bs_init, [#b_literal{val=Type}|Args], _Ts, _Ds) ->
- case {Type,Args} of
- {new,[_,#b_literal{val=Unit}]} ->
- {binary,Unit};
- {append,[_,_,#b_literal{val=Unit}]} ->
- {binary,Unit};
- {private_append,[_,_,#b_literal{val=Unit}]} ->
- {binary,Unit}
- end;
+type(bs_init, _Args, _Ts, _Ds) ->
+ {binary, 1};
type(bs_extract, [Ctx], Ts, _Ds) ->
#t_bs_match{type=Type} = get_type(Ctx, Ts),
Type;