Teach gimple_canonical_types_compatible_p about incomplete types
Jan Hubicka
hubicka@ucw.cz
Fri May 29 21:46:00 GMT 2015
> On Tue, 26 May 2015, Jan Hubicka wrote:
>
> > > On May 25, 2015 1:49:45 AM GMT+02:00, Jan Hubicka <hubicka@ucw.cz> wrote:
> > >
> > >
> > > >2 Each enumerated type shall be compatible with char , a signed
> > > >integer
> > > > type, or an unsigned integer type. The choice of type is
> > > >implementation-defined, but shall be capable of representing the
> > > >values
> > > > of all the members of the enumeration. The enumerated type is
> > > > incomplete until immediately after the that terminates the list of
> > > > enumerator declarations, and complete thereafter.
> > > >
> > > >(we ignore this completely as far as I know, it is easy to fix though,
> > > >all
> > > > we need is to make ENUMERATION_TYPE pretend to be INTEGER_TYPE)
> > >
> > > Don't forget -fshort-enum though.
> >
> > I believe -fshort-enum is makes us non-complian to the C standard and thus
> > we are free to not follow this rule :)
>
> -fshort-enums is perfectly compatible with the C standard. The choice of
> integer type depends on the enumerated type in question - different
> enumerated types can be compatible with different integer types.
I see, so it does not need to be actual "int"/"unsigned int". I suppose we are then
safe to just treat ENUMERATION_TYPE as INTEGER_TYPE.
Thank you for clarification!
Honza
>
> --
> Joseph S. Myers
> joseph@codesourcery.com
More information about the Gcc-patches
mailing list