diff options
author | Björn Gustavsson <[email protected]> | 2016-10-28 10:10:22 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2016-10-28 10:10:22 +0200 |
commit | f957985dc38034bf49711052ef02c14fa054667a (patch) | |
tree | d7ec2dfd3074a05b2dcaf80f26d13b8b79d57133 /lib/compiler/src | |
parent | ce0785da10fb5d82ed3b6e93ff82e112f38e75fa (diff) | |
parent | 89bf3f5bef9d9f5fb4a0003d6da028900d0f32fc (diff) | |
download | otp-f957985dc38034bf49711052ef02c14fa054667a.tar.gz otp-f957985dc38034bf49711052ef02c14fa054667a.tar.bz2 otp-f957985dc38034bf49711052ef02c14fa054667a.zip |
Merge branch 'bjorn/compiler/minor-fixes' into maint
* bjorn/compiler/minor-fixes:
Don't copy funs into guards
Diffstat (limited to 'lib/compiler/src')
-rw-r--r-- | lib/compiler/src/sys_core_fold.erl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/compiler/src/sys_core_fold.erl b/lib/compiler/src/sys_core_fold.erl index 5e1602cb5b..4922953407 100644 --- a/lib/compiler/src/sys_core_fold.erl +++ b/lib/compiler/src/sys_core_fold.erl @@ -1130,7 +1130,13 @@ clause_1(#c_clause{guard=G0,body=B0}=Cl, Ps1, Cexpr, Ctxt, Sub1) -> %% %% case A of NewVar when true -> ... %% - sub_set_var(Var, Cexpr, Sub2); + case cerl:is_c_fname(Cexpr) of + false -> + sub_set_var(Var, Cexpr, Sub2); + true -> + %% We must not copy funs, and especially not into guards. + Sub2 + end; _ -> Sub2 end, |