------- Comment #22 from pinskia at gcc dot gnu dot org 2007-01-10 23:20 ------- It should be rewritten as: if ((INTEGRAL_TYPE_P (valtype) && GET_MODE_BITSIZE (TYPE_MODE (valtype)) < BITS_PER_WORD) || POINTER_TYPE_P (valtype)) mode = TARGET_32BIT ? SImode : DImode; else mode = TYPE_MODE (valtype);
TYPE_PRECISION is incorrect as it says the numbers of bits used and not the number of bits for the type itself. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30406