diff options
author | Björn Gustavsson <[email protected]> | 2010-10-07 11:20:59 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-10-07 11:20:59 +0200 |
commit | 0f851e8dbfcc33ca31603409e21742455d37e3be (patch) | |
tree | 4ee7f07614610ced6c3bdf2339269e7fed4229a2 /lib/compiler | |
parent | 9cd4afbb49d3a1802b2dcb4e15a8797286045644 (diff) | |
parent | d0c538e3dd5072ad0227553f5dd7dcdc2e6c3288 (diff) | |
download | otp-0f851e8dbfcc33ca31603409e21742455d37e3be.tar.gz otp-0f851e8dbfcc33ca31603409e21742455d37e3be.tar.bz2 otp-0f851e8dbfcc33ca31603409e21742455d37e3be.zip |
Merge branch 'bjorn/compiler/fix-zero-segment-bug/OTP-8865' into dev
* bjorn/compiler/fix-zero-segment-bug/OTP-8865:
Fix compiler crash when constructing zero-size binary segments
Diffstat (limited to 'lib/compiler')
-rw-r--r-- | lib/compiler/src/v3_codegen.erl | 4 | ||||
-rw-r--r-- | lib/compiler/test/bs_construct_SUITE.erl | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/compiler/src/v3_codegen.erl b/lib/compiler/src/v3_codegen.erl index 948937c438..77da6c8d00 100644 --- a/lib/compiler/src/v3_codegen.erl +++ b/lib/compiler/src/v3_codegen.erl @@ -1523,7 +1523,9 @@ cg_binary_size_1([], Bits, Acc) -> [{1,_}|_] -> {bs_init_bits,cg_binary_bytes_to_bits(Sizes, [])}; [{8,_}|_] -> - {bs_init2,[E || {8,E} <- Sizes]} + {bs_init2,[E || {8,E} <- Sizes]}; + [] -> + {bs_init_bits,[]} end. cg_binary_size_2({integer,N}, U, _, Next, Bits, Acc) -> diff --git a/lib/compiler/test/bs_construct_SUITE.erl b/lib/compiler/test/bs_construct_SUITE.erl index 1862a28bbe..dfe4301791 100644 --- a/lib/compiler/test/bs_construct_SUITE.erl +++ b/lib/compiler/test/bs_construct_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2004-2009. All Rights Reserved. +%% Copyright Ericsson AB 2004-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -66,6 +66,8 @@ id(I) -> I. l(I_13, I_big1, I_16, Bin) -> [ + ?T(<<I_13:0>>, + []), ?T(<<-43>>, [256-43]), ?T(<<4:4,7:4>>, |