summaryrefslogtreecommitdiff
path: root/compiler/optimizing/escape.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/escape.cc')
-rw-r--r--compiler/optimizing/escape.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/escape.cc b/compiler/optimizing/escape.cc
index 9df5bf1017..88e9326093 100644
--- a/compiler/optimizing/escape.cc
+++ b/compiler/optimizing/escape.cc
@@ -51,7 +51,9 @@ void CalculateEscape(HInstruction* reference,
*is_singleton_and_not_returned = false;
*is_singleton_and_not_deopt_visible = false;
return;
- } else if (user->IsPhi() || user->IsSelect() || user->IsInvoke() ||
+ } else if (user->IsPhi() ||
+ user->IsSelect() ||
+ (user->IsInvoke() && user->GetSideEffects().DoesAnyWrite()) ||
(user->IsInstanceFieldSet() && (reference == user->InputAt(1))) ||
(user->IsUnresolvedInstanceFieldSet() && (reference == user->InputAt(1))) ||
(user->IsStaticFieldSet() && (reference == user->InputAt(1))) ||