diff options
author | John Hodge <tpg@ucc.asn.au> | 2018-09-22 22:57:38 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2018-09-22 22:57:38 +0800 |
commit | 36ca39cec782580f8e56615cd90a9f0e4d2a9c3c (patch) | |
tree | 41c6d97b53881b3657695c5a072e211a74ff07fa /src/mir | |
parent | fea81c19efc4961ed43a7aac44fed1efd24f2b4d (diff) | |
download | mrust-36ca39cec782580f8e56615cd90a9f0e4d2a9c3c.tar.gz |
Misc - Fix some failing tests
Diffstat (limited to 'src/mir')
-rw-r--r-- | src/mir/optimise.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mir/optimise.cpp b/src/mir/optimise.cpp index ef9c5fc9..80bca08d 100644 --- a/src/mir/optimise.cpp +++ b/src/mir/optimise.cpp @@ -3479,7 +3479,11 @@ bool MIR_Optimise_GarbageCollect(::MIR::TypeResolve& state, ::MIR::Function& fcn visited[bb] = true; auto assigned_lval = [&](const ::MIR::LValue& lv) { - if(const auto* le = lv.opt_Local() ) + const auto* lvp = &lv; + // TODO: Consume through indexing/field accesses + while(lvp->is_Field()) + lvp = &*lvp->as_Field().val; + if(const auto* le = lvp->opt_Local() ) used_locals[*le] = true; }; |