On Wed, 26 Nov 2014, Chen Gang wrote:

> +  gcc_assert (wi::fits_to_tree_p (value, char_type_node)
> +           || wi::fits_to_tree_p (value, short_integer_type_node)
> +           || wi::fits_to_tree_p (value, integer_type_node)
> +           || wi::fits_to_tree_p (value, long_integer_type_node)
> +           || wi::fits_to_tree_p (value, long_long_integer_type_node));

It doesn't make sense to check for char or short, since you can't write a 
constant of one of those types.  And it doesn't make sense to check for 
int or long when checking for long long, as the ranges of int and long are 
subsets of that of long long.  So just check long long here.

> +  buf = (char *) alloca (strlen (macro) + vlen + extra);
> +
> +  sprintf (buf, "%s=%s"HOST_WIDE_INT_PRINT_DEC"%s%s",
> +        macro,
> +        value < 0 ? "(" : "",
> +        value,
> +        wi::fits_to_tree_p (value, char_type_node)
> +          || wi::fits_to_tree_p (value, short_integer_type_node)
> +          || wi::fits_to_tree_p (value, integer_type_node)

No need to check for char or short here.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to