aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2012-11-06 09:20:02 +0100
committerBjörn Gustavsson <[email protected]>2012-11-06 09:20:02 +0100
commit2da980f03b0f67b1e8e15cb65049a90e3de401c0 (patch)
treedd7b54746123b8d6c16f89b4ee6adaafa0a66796 /lib/compiler/src
parentd5733bc3e34449affde2594d85b905c8ab440d42 (diff)
downloadotp-2da980f03b0f67b1e8e15cb65049a90e3de401c0.tar.gz
otp-2da980f03b0f67b1e8e15cb65049a90e3de401c0.tar.bz2
otp-2da980f03b0f67b1e8e15cb65049a90e3de401c0.zip
Fix compiler crash for binary matching and a complicated guard
The compiler would crash when attempting to compile a function head that did binary matching and had a complex expression using 'andalso' and 'not'. Noticed-by: José Valim
Diffstat (limited to 'lib/compiler/src')
-rw-r--r--lib/compiler/src/v3_codegen.erl1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/compiler/src/v3_codegen.erl b/lib/compiler/src/v3_codegen.erl
index be15495672..812e85553f 100644
--- a/lib/compiler/src/v3_codegen.erl
+++ b/lib/compiler/src/v3_codegen.erl
@@ -370,6 +370,7 @@ bsm_rename_ctx(#l{ke={test,_,_}}=L, _, _, _) -> L;
bsm_rename_ctx(#l{ke={bif,_,_,_}}=L, _, _, _) -> L;
bsm_rename_ctx(#l{ke={gc_bif,_,_,_}}=L, _, _, _) -> L;
bsm_rename_ctx(#l{ke={set,_,_}}=L, _, _, _) -> L;
+bsm_rename_ctx(#l{ke={call,_,_,_}}=L, _, _, _) -> L;
bsm_rename_ctx(#l{ke={block,_}}=L, Old, _, false) ->
%% This block is not inside a protected. The match context variable cannot
%% possibly be live inside the block.