aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test/guard_SUITE.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-01-16 09:37:24 +0100
committerBjörn Gustavsson <[email protected]>2015-01-16 09:37:24 +0100
commit75ff0fcd414d56845264f2e3f3ecff5826dd57a1 (patch)
tree1620b9ca5b6fc7144a568c15839a3c1a1999d1d1 /lib/compiler/test/guard_SUITE.erl
parent96b532f4e4aad9f2cf4cee5bcf39845fbb89d2ad (diff)
parent50a92094372b45c9864afe3418b79605da549122 (diff)
downloadotp-75ff0fcd414d56845264f2e3f3ecff5826dd57a1.tar.gz
otp-75ff0fcd414d56845264f2e3f3ecff5826dd57a1.tar.bz2
otp-75ff0fcd414d56845264f2e3f3ecff5826dd57a1.zip
Merge branch 'maint'
* maint: Update primary bootstrap beam_bool: Correct live calculation for GC BIFs beam_bool: Correct indentation for try...catch sys_core_fold: Correct optimization of 'case' Conflicts: bootstrap/bin/start.boot bootstrap/bin/start_clean.boot bootstrap/lib/compiler/ebin/beam_asm.beam bootstrap/lib/stdlib/ebin/io_lib_pretty.beam
Diffstat (limited to 'lib/compiler/test/guard_SUITE.erl')
-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 689c65f537..48badb439e 100644
--- a/lib/compiler/test/guard_SUITE.erl
+++ b/lib/compiler/test/guard_SUITE.erl
@@ -1782,6 +1782,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.