aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2014-08-26 19:41:53 +0200
committerBjörn-Egil Dahlberg <[email protected]>2014-08-26 19:49:01 +0200
commitd76a8c75d62c8075b6d3d46003d50d266cd1a6ca (patch)
tree5df7dcbfdf6fbe36148f868dbda7a56f19576163
parent6637d75caf2033619a0419ce4418302f7d65388e (diff)
downloadotp-d76a8c75d62c8075b6d3d46003d50d266cd1a6ca.tar.gz
otp-d76a8c75d62c8075b6d3d46003d50d266cd1a6ca.tar.bz2
otp-d76a8c75d62c8075b6d3d46003d50d266cd1a6ca.zip
compiler: Fix v3_core Maps pair chains
Check for literals instead of variables when constructing chains.
-rw-r--r--lib/compiler/src/v3_core.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/compiler/src/v3_core.erl b/lib/compiler/src/v3_core.erl
index dd835a6a9f..1223e69ffe 100644
--- a/lib/compiler/src/v3_core.erl
+++ b/lib/compiler/src/v3_core.erl
@@ -827,10 +827,10 @@ map_pair_block([{Op,L,K0,V0}|Es],Ces,Esp,St0) ->
A = lineno_anno(L, St2),
Pair0 = map_op_to_c_map_pair(Op),
Pair1 = Pair0#c_map_pair{anno=A,key=K,val=V},
- case cerl:is_c_var(K) of
- false ->
- map_pair_block(Es,[Pair1|Ces],Ep0 ++ Ep1 ++ Esp,St2);
+ case cerl:is_literal(K) of
true ->
+ map_pair_block(Es,[Pair1|Ces],Ep0 ++ Ep1 ++ Esp,St2);
+ false ->
{{Ces,Esp},{[Pair1],Ep0++Ep1},Es,St2}
end;
map_pair_block([],Ces,Esp,St) ->