aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-08-10 14:16:56 +0200
committerBjörn Gustavsson <[email protected]>2017-08-10 14:16:56 +0200
commite16195c1d675c0d929af1ad75e7f3a7838429fd8 (patch)
tree6f3e955bee10bf7d206ab0d41a62c213fc73afff /lib/compiler/src
parente56a676958b86d9190747301e032481811d61a36 (diff)
parent49918dd747d6d949d72ca51f1323b04abd2afba5 (diff)
downloadotp-e16195c1d675c0d929af1ad75e7f3a7838429fd8.tar.gz
otp-e16195c1d675c0d929af1ad75e7f3a7838429fd8.tar.bz2
otp-e16195c1d675c0d929af1ad75e7f3a7838429fd8.zip
Merge branch 'maint'
* maint: sys_core_fold: Fix unsafe optimization of non-variable apply Correct type specification in ssl:prf/5
Diffstat (limited to 'lib/compiler/src')
-rw-r--r--lib/compiler/src/sys_core_fold.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/compiler/src/sys_core_fold.erl b/lib/compiler/src/sys_core_fold.erl
index e0cd6da06f..d73060fb7e 100644
--- a/lib/compiler/src/sys_core_fold.erl
+++ b/lib/compiler/src/sys_core_fold.erl
@@ -395,10 +395,10 @@ expr(#c_receive{clauses=Cs0,timeout=T0,action=A0}=Recv, Ctxt, Sub) ->
expr(#c_apply{anno=Anno,op=Op0,args=As0}=App, _, Sub) ->
Op1 = expr(Op0, value, Sub),
As1 = expr_list(As0, value, Sub),
- case Op1 of
- #c_var{} ->
+ case cerl:is_data(Op1) of
+ false ->
App#c_apply{op=Op1,args=As1};
- _ ->
+ true ->
add_warning(App, invalid_call),
Err = #c_call{anno=Anno,
module=#c_literal{val=erlang},