This patch fixes the default implementation of TARGET_VECTOR_ALIGNMENT,
known as default_vector_alignment, using the same logic as my earlier
nvptx patch, as the ICE caused by TYPE_SIZE(type) being zero during
error handling in gcc.dg/attr-vector_size.c is common among backends,
and is known in bugzilla as PR middle-end/90597, apparently a recent
regression.
2020-09-01 Roger Sayle <roger@nextmovesoftware.com>
gcc/ChangeLog:
PR middle-end/90597
* targhooks.c (default_vector_alignment): Return at least the
GET_MODE_ALIGNMENT for the type's mode.
tree size = TYPE_SIZE (type);
if (tree_fits_uhwi_p (size))
align = tree_to_uhwi (size);
-
- return align < MAX_OFILE_ALIGNMENT ? align : MAX_OFILE_ALIGNMENT;
+ if (align >= MAX_OFILE_ALIGNMENT)
+ return MAX_OFILE_ALIGNMENT;
+ return MAX (align, GET_MODE_ALIGNMENT (TYPE_MODE (type)));
}
/* The default implementation of