aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-02-23 10:04:35 +0100
committerBjörn Gustavsson <[email protected]>2015-02-23 10:04:35 +0100
commitae19533a826c211d8ac1c06f59c62c2f3b7a3804 (patch)
tree161504962e4388f26590441eec65bbfdf7eed794 /lib/compiler/test
parent79736ff7d2e3916356fddda3a03fed8c9d292bdb (diff)
parent1899aa487d898078e6e7b1c6b7ea3aa5ea31c7e5 (diff)
downloadotp-ae19533a826c211d8ac1c06f59c62c2f3b7a3804.tar.gz
otp-ae19533a826c211d8ac1c06f59c62c2f3b7a3804.tar.bz2
otp-ae19533a826c211d8ac1c06f59c62c2f3b7a3804.zip
Merge branch 'bjorn/compiler/beam_jump-share'
* bjorn/compiler/beam_jump-share: beam_jump: Don't jump into the middle of a 'try'
Diffstat (limited to 'lib/compiler/test')
-rw-r--r--lib/compiler/test/trycatch_SUITE.erl17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/compiler/test/trycatch_SUITE.erl b/lib/compiler/test/trycatch_SUITE.erl
index 8ab618bb01..80d93fbfa4 100644
--- a/lib/compiler/test/trycatch_SUITE.erl
+++ b/lib/compiler/test/trycatch_SUITE.erl
@@ -24,7 +24,8 @@
catch_oops/1,after_oops/1,eclectic/1,rethrow/1,
nested_of/1,nested_catch/1,nested_after/1,
nested_horrid/1,last_call_optimization/1,bool/1,
- plain_catch_coverage/1,andalso_orelse/1,get_in_try/1]).
+ plain_catch_coverage/1,andalso_orelse/1,get_in_try/1,
+ hockey/1]).
-include_lib("test_server/include/test_server.hrl").
@@ -39,7 +40,8 @@ groups() ->
[basic,lean_throw,try_of,try_after,catch_oops,
after_oops,eclectic,rethrow,nested_of,nested_catch,
nested_after,nested_horrid,last_call_optimization,
- bool,plain_catch_coverage,andalso_orelse,get_in_try]}].
+ bool,plain_catch_coverage,andalso_orelse,get_in_try,
+ hockey]}].
init_per_suite(Config) ->
@@ -943,3 +945,14 @@ get_valid_line([_|T]=Path, Annotations) ->
_:not_found ->
get_valid_line(T, Annotations)
end.
+
+hockey(_) ->
+ {'EXIT',{{badmatch,_},[_|_]}} = (catch hockey()),
+ ok.
+
+hockey() ->
+ %% beam_jump used to generate a call into the try block.
+ %% beam_validator disapproved.
+ receive _ -> (b = fun() -> ok end)
+ + hockey, +x after 0 -> ok end, try (a = fun() -> ok end) + hockey, +
+ y catch _ -> ok end.