aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test/erl_lint_SUITE.erl
diff options
context:
space:
mode:
authorAnthony Ramine <[email protected]>2013-07-22 21:41:31 +0200
committerFredrik Gustafsson <[email protected]>2013-08-27 16:15:21 +0200
commit9ce148b1059e4da746a11f1d80a653340216c468 (patch)
tree6b1e4e88e8ed5f6e955b164bc66904783064e0a2 /lib/stdlib/test/erl_lint_SUITE.erl
parentf846bf70b0c97ce66f29b0ff88a50316924bf34e (diff)
downloadotp-9ce148b1059e4da746a11f1d80a653340216c468.tar.gz
otp-9ce148b1059e4da746a11f1d80a653340216c468.tar.bz2
otp-9ce148b1059e4da746a11f1d80a653340216c468.zip
Fix unsafe variable tracking in try expressions
Variables used in the body of a try expression were marked as unsafe *and* used, which makes no sense as an unsafe variable can't be used. Function vtsubtract/2 is used to forget usage of such unsafe variables. Reported-by: Paul Davis
Diffstat (limited to 'lib/stdlib/test/erl_lint_SUITE.erl')
-rw-r--r--lib/stdlib/test/erl_lint_SUITE.erl19
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl
index 0bcf9b3e01..a1a9839bae 100644
--- a/lib/stdlib/test/erl_lint_SUITE.erl
+++ b/lib/stdlib/test/erl_lint_SUITE.erl
@@ -1098,7 +1098,24 @@ unsafe_vars_try(Config) when is_list(Config) ->
{10,erl_lint,{unsafe_var,'Ra',{'try',3}}},
{10,erl_lint,{unsafe_var,'Rc',{'try',3}}},
{10,erl_lint,{unsafe_var,'Ro',{'try',3}}}],
- []}}],
+ []}},
+ {unsafe_try5,
+ <<"bang() ->
+ case 1 of
+ nil ->
+ Acc = 2;
+ _ ->
+ try
+ Acc = 3,
+ Acc
+ catch _:_ ->
+ ok
+ end
+ end,
+ Acc.
+ ">>,
+ [],
+ {errors,[{13,erl_lint,{unsafe_var,'Acc',{'try',6}}}],[]}}],
?line [] = run(Config, Ts),
ok.