aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.cc
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2023-06-28 17:38:16 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2023-06-28 17:53:11 +0200
commit9757e4440bd8755d327601a60a73d57d712583ed (patch)
tree1ec21d8603217ecfb3b0c09495e46daa3dd4eeff /gcc/expr.cc
parent4de22e25918f6fe40184c444ba6d81b19b806e26 (diff)
downloadgcc-9757e4440bd8755d327601a60a73d57d712583ed.zip
gcc-9757e4440bd8755d327601a60a73d57d712583ed.tar.gz
gcc-9757e4440bd8755d327601a60a73d57d712583ed.tar.bz2
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.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions