diff options
author | Björn Gustavsson <[email protected]> | 2016-04-26 09:11:07 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2016-04-28 12:13:49 +0200 |
commit | a3ec2644f58d8cfeca0240929d44885ff7a517fa (patch) | |
tree | 2f0c6a7ffc6ac1ed1aa563a7f6a0a193c5a036f1 /lib/compiler/src/sys_pre_expand.erl | |
parent | 85ccc38d59dd9751dfd7cead0e4ed0c1e6c169ad (diff) | |
download | otp-a3ec2644f58d8cfeca0240929d44885ff7a517fa.tar.gz otp-a3ec2644f58d8cfeca0240929d44885ff7a517fa.tar.bz2 otp-a3ec2644f58d8cfeca0240929d44885ff7a517fa.zip |
v3_core: Don't depend on sys_core_fold for cleaning up
v3_core would generate unsafe code for the following example:
f() ->
{ok={error,E}} = foo(),
E.
Internally, the code would look similar to:
f() ->
Var = foo(),
error({badmatch,Var}),
E.
That is, there would remain a reference to an unbound variable.
Normally, sys_core_fold would remove the reference to 'E', but if
if optimization was disabled the compiler would crash.
Diffstat (limited to 'lib/compiler/src/sys_pre_expand.erl')
0 files changed, 0 insertions, 0 deletions