From 3abbbeec85268f243b7c97f569ad4da40babd8c9 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Sat, 8 Mar 2014 01:49:13 +0100 Subject: Properly detect reused boolean values in beam_bool The following code could crash the compiler: f(X = true) when X or true or X -> ok. Reported-by: Ulf Norell --- lib/compiler/test/andor_SUITE.erl | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/compiler/test') diff --git a/lib/compiler/test/andor_SUITE.erl b/lib/compiler/test/andor_SUITE.erl index d79696df38..b5408ecd8f 100644 --- a/lib/compiler/test/andor_SUITE.erl +++ b/lib/compiler/test/andor_SUITE.erl @@ -171,6 +171,8 @@ t_and_or(Config) when is_list(Config) -> false = ?GUARD(erlang:'not'(erlang:'and'(bar, True))), false = ?GUARD(erlang:'not'(erlang:'not'(erlang:'and'(bar, True)))), + true = (fun (X = true) when X or true or X -> true end)(True), + ok. t_andalso(Config) when is_list(Config) -> -- cgit v1.2.3