summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r--src/wasm-interpreter.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 8e82bdf80..afc193f71 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -1541,14 +1541,15 @@ public:
const auto& fields = heapType.getStruct().fields;
Literals data(fields.size());
for (Index i = 0; i < fields.size(); i++) {
+ auto& field = fields[i];
if (curr->isWithDefault()) {
- data[i] = Literal::makeZero(fields[i].type);
+ data[i] = Literal::makeZero(field.type);
} else {
auto value = self()->visit(curr->operands[i]);
if (value.breaking()) {
return value;
}
- data[i] = value.getSingleValue();
+ data[i] = truncateForPacking(value.getSingleValue(), field);
}
}
return Literal(std::make_shared<GCData>(curr->type.getHeapType(), data),