void InterpFrame::destroy(unsigned Idx) {
for (auto &Local : Func->getScope(Idx).locals()) {
- S.deallocate(reinterpret_cast<Block *>(localBlock(Local.Offset)));
+ S.deallocate(localBlock(Local.Offset));
}
}
Pointer InterpFrame::getLocalPointer(unsigned Offset) const {
assert(Offset < Func->getFrameSize() && "Invalid local offset.");
- return Pointer(reinterpret_cast<Block *>(localBlock(Offset)),
- sizeof(InlineDescriptor));
+ return Pointer(localBlock(Offset), sizeof(InlineDescriptor));
}
Pointer InterpFrame::getParamPointer(unsigned Off) {
}
/// Returns a pointer to a local's block.
- void *localBlock(unsigned Offset) const {
- return Locals.get() + Offset - sizeof(Block);
+ Block *localBlock(unsigned Offset) const {
+ return reinterpret_cast<Block *>(Locals.get() + Offset - sizeof(Block));
}
// Returns the inline descriptor of the local.