https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110193
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain Buclaw <ibuc...@gcc.gnu.org>: https://gcc.gnu.org/g:9757e4440bd8755d327601a60a73d57d712583ed commit r14-2168-g9757e4440bd8755d327601a60a73d57d712583ed Author: Iain Buclaw <ibuc...@gdcproject.org> Date: Wed Jun 28 17:38:16 2023 +0200 d: Fix d_signed_or_unsigned_type is invoked for vector types (PR110193) This function can be invoked on VECTOR_TYPE, but the implementation assumes it works on integer types only. To fix, added a check whether the type passed is any `__vector(T)' or non-integral type, and return early by calling `signed_or_unsigned_type_for()' instead. Problem was found by instrumenting TYPE_PRECISION and ICEing when applied on VECTOR_TYPEs. PR d/110193 gcc/d/ChangeLog: * types.cc (d_signed_or_unsigned_type): Handle being called with any vector or non-integral type.