aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test/match_SUITE.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2018-11-29 13:31:40 +0100
committerBjörn Gustavsson <[email protected]>2018-11-30 14:20:39 +0100
commit89f37d9ba5925e3bb570c15560d59ad2be8f1d19 (patch)
treef533fbdd4d6e16395747371af954034aa0de0908 /lib/compiler/test/match_SUITE.erl
parent36df00d48692c6f2e6d8c2ffd4eb03e4b66f56a9 (diff)
downloadotp-89f37d9ba5925e3bb570c15560d59ad2be8f1d19.tar.gz
otp-89f37d9ba5925e3bb570c15560d59ad2be8f1d19.tar.bz2
otp-89f37d9ba5925e3bb570c15560d59ad2be8f1d19.zip
Cover code in beam_ssa_dead
Diffstat (limited to 'lib/compiler/test/match_SUITE.erl')
-rw-r--r--lib/compiler/test/match_SUITE.erl26
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/compiler/test/match_SUITE.erl b/lib/compiler/test/match_SUITE.erl
index eed2a31f70..10527775f4 100644
--- a/lib/compiler/test/match_SUITE.erl
+++ b/lib/compiler/test/match_SUITE.erl
@@ -641,13 +641,22 @@ do_map_vars_used(X, Y, Map) ->
Val
end.
+-record(coverage_id, {bool=false,id}).
coverage(Config) when is_list(Config) ->
%% Cover beam_dead.
ok = coverage_1(x, a),
ok = coverage_1(x, b),
%% Cover sys_pre_expand.
- ok = coverage_3("abc").
+ ok = coverage_3("abc"),
+
+ %% Cover beam_ssa_dead.
+ {expr,key} = coverage_4([literal,get], [[expr,key]]),
+ {expr,key} = coverage_4([expr,key], []),
+ a = coverage_5([8,8,8], #coverage_id{bool=true}),
+ b = coverage_5([], #coverage_id{bool=true}),
+
+ ok.
coverage_1(B, Tag) ->
case Tag of
@@ -660,6 +669,21 @@ coverage_2(2, b, x) -> ok.
coverage_3([$a]++[]++"bc") -> ok.
+%% Cover beam_ssa_dead:eval_type_test_1(is_nonempty_list, Arg).
+coverage_4([literal,get], [Expr]) ->
+ coverage_4(Expr, []);
+coverage_4([Expr,Key], []) ->
+ {Expr,Key}.
+
+%% Cover beam_ssa_dead:eval_type_test_1(is_tagged_tuple, Arg).
+coverage_5(Config, TermId)
+ when TermId =:= #coverage_id{bool=true},
+ Config =:= [8,8,8] ->
+ a;
+coverage_5(_Config, #coverage_id{bool=true}) ->
+ b.
+
+
grab_bag(_Config) ->
[_|T] = id([a,b,c]),
[b,c] = id(T),