summaryrefslogtreecommitdiff
path: root/src/passes/OptimizeInstructions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/OptimizeInstructions.cpp')
-rw-r--r--src/passes/OptimizeInstructions.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp
index e71519012..e6b19a6de 100644
--- a/src/passes/OptimizeInstructions.cpp
+++ b/src/passes/OptimizeInstructions.cpp
@@ -1941,9 +1941,10 @@ struct OptimizeInstructions
return;
}
- if (curr->ref->type != Type::unreachable && curr->value->type.isInteger()) {
- auto element = curr->ref->type.getHeapType().getArray().element;
- optimizeStoredValue(curr->value, element.getByteSize());
+ if (curr->value->type.isInteger()) {
+ if (auto field = GCTypeUtils::getField(curr->ref->type)) {
+ optimizeStoredValue(curr->value, field->getByteSize());
+ }
}
}