diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-05-13 13:42:06 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-05-13 13:42:06 +0800 |
commit | a25a8fa64b36cb43bc4b0a3054f51c65ceaf6b61 (patch) | |
tree | e6fb0ba6c214bc5765694c30f9f14a8cba175783 | |
parent | fde22b3f03d802231985b8ded567cba16cb5aa00 (diff) | |
download | mrust-a25a8fa64b36cb43bc4b0a3054f51c65ceaf6b61.tar.gz |
MIR Optimise - Fix incorrect optimisation of function return
-rw-r--r-- | src/mir/optimise.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mir/optimise.cpp b/src/mir/optimise.cpp index d7379526..3b5fa036 100644 --- a/src/mir/optimise.cpp +++ b/src/mir/optimise.cpp @@ -2149,7 +2149,7 @@ bool MIR_Optimise_PropagateSingleAssignments(::MIR::TypeResolve& state, ::MIR::F if( !e.ret_val.is_Temporary() ) continue ; const auto& vu = val_uses.tmp_uses[e.ret_val.as_Temporary().idx]; - if( !( vu.read == 1 && vu.write == 1 ) ) + if( !( vu.read == 1 && vu.write == 1 && vu.borrow == 0 ) ) continue ; // Iterate the target block, looking for where this value is used. |