-c375f3bf470f94220149b486c947bb3eb57cde7d
+731941c155214d6158fa800e52ab3225c0b55f73
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
{
if (!this->is_backend_type_size_known(gogo))
return false;
+ if (this->is_error_type())
+ return false;
Btype* bt = this->get_backend_placeholder(gogo);
*psize = gogo->backend()->type_size(bt);
if (*psize == -1)
(*vals)->push_back(Expression::make_integer_ul(opval, uintptr_type, bloc));
(*vals)->push_back(*offset);
- if (element_size != 0)
+ if (element_size != 0 && ok)
(*vals)->push_back(Expression::make_gc_symbol(element_type));
this->advance_gc_offset(offset);
}
Type* element_type = this->element_type();
if (bound < 1 || !element_type->has_pointer())
this->advance_gc_offset(offset);
- else if (bound == 1 || iwidth <= 4 * pwidth)
+ else if (ok && (bound == 1 || iwidth <= 4 * pwidth))
{
for (unsigned int i = 0; i < bound; ++i)
Type::gc_symbol(gogo, element_type, vals, offset, stack_size);