summaryrefslogtreecommitdiff
path: root/compiler/optimizing/instruction_simplifier.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/instruction_simplifier.cc')
-rw-r--r--compiler/optimizing/instruction_simplifier.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/optimizing/instruction_simplifier.cc b/compiler/optimizing/instruction_simplifier.cc
index 914e44a18d..4db258b1f0 100644
--- a/compiler/optimizing/instruction_simplifier.cc
+++ b/compiler/optimizing/instruction_simplifier.cc
@@ -2940,7 +2940,7 @@ bool InstructionSimplifierVisitor::CanUseKnownBootImageVarHandle(HInvoke* invoke
DCHECK(!declaring_class->IsInitialized());
return false;
}
- HLoadClass* load_class = var_handle_instruction->InputAt(0)->AsLoadClass();
+ HInstruction* load_class = var_handle_instruction->InputAt(0)->AsLoadClass();
if (kIsDebugBuild) {
bool is_in_boot_image = false;
if (Runtime::Current()->GetHeap()->ObjectIsInBootImageSpace(declaring_class)) {
@@ -2950,9 +2950,10 @@ bool InstructionSimplifierVisitor::CanUseKnownBootImageVarHandle(HInvoke* invoke
const char* descriptor = declaring_class->GetDescriptor(&storage);
is_in_boot_image = compiler_options.IsImageClass(descriptor);
}
- CHECK_EQ(is_in_boot_image, load_class->IsInBootImage());
+ CHECK_EQ(is_in_boot_image,
+ load_class->IsLoadClass() && load_class->AsLoadClass()->IsInBootImage());
}
- if (!load_class->IsInBootImage()) {
+ if (!load_class->IsLoadClass() || !load_class->AsLoadClass()->IsInBootImage()) {
return false;
}