diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-03-06 14:33:06 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-03-06 14:33:06 +0100 |
commit | 47b0b0b94f82e6ae3d87d8d43ddf9a4846932d97 (patch) | |
tree | 722e3637ebf6c3d02c30f25403fea75194cdd69a /lib/compiler | |
parent | 1c48db25372a2bc96b5ce643913f95082c550b0c (diff) | |
parent | 55e4051bbe8f9790e19cf403bdd736a56e512510 (diff) | |
download | otp-47b0b0b94f82e6ae3d87d8d43ddf9a4846932d97.tar.gz otp-47b0b0b94f82e6ae3d87d8d43ddf9a4846932d97.tar.bz2 otp-47b0b0b94f82e6ae3d87d8d43ddf9a4846932d97.zip |
Merge branch 'nox/maps-beam_jump'
* nox/maps-beam_jump:
Properly check label use in get_map_elements in beam_jump
Diffstat (limited to 'lib/compiler')
-rw-r--r-- | lib/compiler/src/beam_jump.erl | 1 | ||||
-rw-r--r-- | lib/compiler/test/map_SUITE.erl | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/compiler/src/beam_jump.erl b/lib/compiler/src/beam_jump.erl index 0fc8d45c80..100acaede3 100644 --- a/lib/compiler/src/beam_jump.erl +++ b/lib/compiler/src/beam_jump.erl @@ -451,6 +451,7 @@ is_label_used_in_2({set,_,_,Info}, Lbl) -> {put_tuple,_} -> false; {get_tuple_element,_} -> false; {set_tuple_element,_} -> false; + {get_map_elements,{f,F}} -> F =:= Lbl; {line,_} -> false; _ when is_atom(Info) -> false end. diff --git a/lib/compiler/test/map_SUITE.erl b/lib/compiler/test/map_SUITE.erl index 59d70bb221..4fc4768802 100644 --- a/lib/compiler/test/map_SUITE.erl +++ b/lib/compiler/test/map_SUITE.erl @@ -298,6 +298,8 @@ t_guard_bifs(Config) when is_list(Config) -> false = map_guard_body({}), true = map_guard_pattern(#{a=>1, <<"hi">> => "hi" }), false = map_guard_pattern("list"), + true = map_guard_tautology(), + true = map_guard_ill_map_size(), ok. map_guard_empty() when is_map(#{}); false -> true. @@ -310,6 +312,10 @@ map_guard_body(M) -> is_map(M). map_guard_pattern(#{}) -> true; map_guard_pattern(_) -> false. +map_guard_tautology() when #{} =:= #{}; true -> true. + +map_guard_ill_map_size() when true; map_size(0) -> true. + t_guard_sequence(Config) when is_list(Config) -> {1, "a"} = map_guard_sequence_1(#{seq=>1,val=>id("a")}), {2, "b"} = map_guard_sequence_1(#{seq=>2,val=>id("b")}), |