maxalign = type->alignment;
}
- assert(type->size == darg->layout->len);
+ assert(type->size <= darg->layout->len);
if ((padding = psi_offset_padding(darg->layout->pos - offset, type->alignment))) {
if (nels + padding + 1 > argc) {
argc += padding;
maxalign = alignment;
}
- assert(jit_type_get_size(type) == darg->layout->len);
+ assert(jit_type_get_size(type) <= darg->layout->len);
if ((padding = psi_offset_padding(darg->layout->pos - offset, alignment))) {
if (nels + padding > argc) {
argc += padding;
size_t align;
if (darg->var->pointer_level
- && (!darg->var->array_size || darg->var->pointer_level > 2)) {
+ && (!darg->var->array_size || darg->var->pointer_level > 1)) {
align = psi_t_alignment(PSI_T_POINTER);
} else {
align = psi_decl_type_get_align(darg->type);
struct psi_decl_type *real = psi_decl_type_get_real(darg->type);
if (darg->var->array_size) {
- if (darg->var->pointer_level > 2) {
+ if (darg->var->pointer_level > 1) {
size = psi_t_size(PSI_T_POINTER) * darg->var->array_size;
} else {
size = psi_t_size(real->type) * darg->var->array_size;