aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-01-16 09:16:36 +0100
committerBjörn Gustavsson <[email protected]>2015-01-16 09:16:36 +0100
commit393f065ccdb9fc318b89893c303b428210c974ab (patch)
tree2a92cf2d52ce38a0026326a927173ebcbee464cf /lib/compiler/test
parentbbea5be67137f5425ab08805b070e31a9df19605 (diff)
parent971fc7b39934e9d3e0927d95c45bea6ad7e90566 (diff)
downloadotp-393f065ccdb9fc318b89893c303b428210c974ab.tar.gz
otp-393f065ccdb9fc318b89893c303b428210c974ab.tar.bz2
otp-393f065ccdb9fc318b89893c303b428210c974ab.zip
Merge branch 'bjorn/compiler/beam_bool/OTP-12410' into maint
* bjorn/compiler/beam_bool/OTP-12410: beam_bool: Correct live calculation for GC BIFs beam_bool: Correct indentation for try...catch
Diffstat (limited to 'lib/compiler/test')
-rw-r--r--lib/compiler/test/guard_SUITE.erl18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/compiler/test/guard_SUITE.erl b/lib/compiler/test/guard_SUITE.erl
index eb205d09a7..34bfdeb1e5 100644
--- a/lib/compiler/test/guard_SUITE.erl
+++ b/lib/compiler/test/guard_SUITE.erl
@@ -1556,6 +1556,24 @@ bad_constants(Config) when is_list(Config) ->
bad_guards(Config) when is_list(Config) ->
if erlang:float(self()); true -> ok end,
+
+ fc(catch bad_guards_1(1, [])),
+ fc(catch bad_guards_1(1, [2])),
+ fc(catch bad_guards_1(atom, [2])),
+
+ fc(catch bad_guards_2(#{a=>0,b=>0}, [])),
+ fc(catch bad_guards_2(#{a=>0,b=>0}, [x])),
+ fc(catch bad_guards_2(not_a_map, [x])),
+ fc(catch bad_guards_2(42, [x])),
+ ok.
+
+%% beam_bool used to produce GC BIF instructions whose
+%% Live operands included uninitialized registers.
+
+bad_guards_1(X, [_]) when {{X}}, -X ->
+ ok.
+
+bad_guards_2(M, [_]) when M#{a := 0, b => 0}, map_size(M) ->
ok.
%% Call this function to turn off constant propagation.