FreeBSD/contrib/gcc/c-common.c
/* Nonzero if the type T promotes to int.  This is (nearly) the
   integral promotions defined in ISO C99 6.3.1.1/2.  */
Nonzero if the type T promotes to int.  This is (nearly) the
integral promotions defined in ISO C99 6.3.1.1/2.
Nonzero if the type T promotes to int . This is ( nearly ) the integral promotions defined in ISO C99 6 . 3 . 1 . 1 / 2 .
bool
c_promoting_integer_type_p (tree t)
{
  switch (TREE_CODE (t))
    {
    case INTEGER_TYPE:
      return (TYPE_MAIN_VARIANT (t) == char_type_node
	      || TYPE_MAIN_VARIANT (t) == signed_char_type_node
	      || TYPE_MAIN_VARIANT (t) == unsigned_char_type_node
	      || TYPE_MAIN_VARIANT (t) == short_integer_type_node
	      || TYPE_MAIN_VARIANT (t) == short_unsigned_type_node
	      || TYPE_PRECISION (t) < TYPE_PRECISION (integer_type_node));
    case ENUMERAL_TYPE:
      return TYPE_PRECISION (t) < TYPE_PRECISION (integer_type_node);
    case BOOLEAN_TYPE:
      return 1;
    default:
      return 0;
    }
}
bool c_promoting_integer_type_p ( tree t ) { switch ( TREE_CODE ( t ) ) { case INTEGER_TYPE : return ( TYPE_MAIN_VARIANT ( t ) == char_type_node || TYPE_MAIN_VARIANT ( t ) == signed_char_type_node || TYPE_MAIN_VARIANT ( t ) == unsigned_char_type_node || TYPE_MAIN_VARIANT ( t ) == short_integer_type_node || TYPE_MAIN_VARIANT ( t ) == short_unsigned_type_node || TYPE_PRECISION ( t ) < TYPE_PRECISION ( integer_type_node ) ) ; case ENUMERAL_TYPE : return TYPE_PRECISION ( t ) < TYPE_PRECISION ( integer_type_node ) ; case BOOLEAN_TYPE : return 1 ; default : return 0 ; } }
Nonzero if the type T promotes to int.
Nonzero if the type T promotes to int .
/* ??? Technically all enumerations not larger than an int
	 promote to an int.  But this is used along code paths
	 that only want to notice a size change.  */