diff options
author | Björn Gustavsson <[email protected]> | 2019-05-27 13:35:13 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-05-27 13:35:13 +0200 |
commit | bdcc5c68d52ffcefce2890aa5454f2d2078be29e (patch) | |
tree | 73bd89c22def1b4c6652a7958285e8de08c5399c | |
parent | a77d3c7a14fc18b44e6732d1e849deb9e3bbb048 (diff) | |
parent | 4b972d6934a2362e228e1458b0a6b2ca5d6aa6c8 (diff) | |
download | otp-bdcc5c68d52ffcefce2890aa5454f2d2078be29e.tar.gz otp-bdcc5c68d52ffcefce2890aa5454f2d2078be29e.tar.bz2 otp-bdcc5c68d52ffcefce2890aa5454f2d2078be29e.zip |
Merge branch 'maint'
* maint:
Fix compiler crash in beam_except
-rw-r--r-- | lib/compiler/test/beam_except_SUITE.erl | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/compiler/test/beam_except_SUITE.erl b/lib/compiler/test/beam_except_SUITE.erl index 8e3b373d29..67947dc292 100644 --- a/lib/compiler/test/beam_except_SUITE.erl +++ b/lib/compiler/test/beam_except_SUITE.erl @@ -21,7 +21,8 @@ -export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, init_per_group/2,end_per_group/2, - multiple_allocs/1,bs_get_tail/1,coverage/1]). + multiple_allocs/1,bs_get_tail/1,coverage/1, + binary_construction_allocation/1]). suite() -> [{ct_hooks,[ts_install_cth]}]. @@ -32,7 +33,8 @@ groups() -> [{p,[parallel], [multiple_allocs, bs_get_tail, - coverage]}]. + coverage, + binary_construction_allocation]}]. init_per_suite(Config) -> test_lib:recompile(?MODULE), @@ -118,6 +120,20 @@ coverage(_) -> fake_function_clause(A) -> error(function_clause, [A,42.0]). + +binary_construction_allocation(_Config) -> + ok = do_binary_construction_allocation("PUT"), + ok. + +do_binary_construction_allocation(Req) -> + %% Allocation for building the error term was done by the + %% bs_init2 instruction. beam_except crashed because it expected + %% an explicit allocation instruction. + ok = case Req of + "POST" -> {error, <<"BAD METHOD ", Req/binary>>, Req}; + _ -> ok + end. + id(I) -> I. -file("fake.erl", 1). |