[lto] Fix bootstrap failure

Doug Kwan (關振德) dougkwan@google.com
Thu Sep 4 17:55:00 GMT 2008


Thanks for fixing that.  Unfortunately enum is not always unsigned:

C99 6.7.2.2 (3)

Each enumerated type shall be compatible with an integer type. The
choice of type is
implementation-defined,99) but shall be capable of representing the
values of all the
members of the enumeration. The enumerated type is incomplete until
after the}that
terminates the list of enumerator declarations.

Removing the test is fine but it will not catch an error if some
version of gcc picks a signed type to represent the enums.  Maybe we
should cast it to unsigned first and then test like:

gcc_assert ((unsigned) reason < CIF_N_REASON);

-Doug


2008/9/4 Diego Novillo <dnovillo@google.com>:
> No need to assert that an unsigned is >= 0.  This was causing a Werror
> failure during stage2.
>
>
> Tested on x86_64.  Committed.
>
>
> Diego.
>
> 2008-09-04  Diego Novillo  <dnovillo@google.com>
>
>        * cgraph.c (cgraph_inlined_failed_string): Fix always
>        true comparison.
>
>
> Index: cgraph.c
> ===================================================================
> --- cgraph.c    (revision 139983)
> +++ cgraph.c    (working copy)
> @@ -1561,7 +1561,7 @@ cgraph_inline_failed_string (cgraph_inli
>  #include "cif-code.def"
>   };
>
> -  gcc_assert (reason >= CIF_OK && reason < CIF_N_REASONS);
> +  gcc_assert (reason < CIF_N_REASONS);
>   return cif_string_table[reason];
>  }
>


More information about the Gcc-patches mailing list