On Fri, 20 Dec 2013, DJ Delorie wrote: > > This seems mostly plausible, though I don't see anything to ensure that > > __intN does not exist at all if the size matches one of the standard C > > types, or if the mode fails targetm.scalar_mode_supported_p. > > What do we check against for this? Is there some table of standard > types we can read the bitsize of in toplev.c, or should we use the > macros as below? What about float/vector/complex types? I assume we > don't check those since the __intN types are integer types.
I think using the macros for type sizes is fine, and float / vector / complex types are completely irrelevant to this (so standard_type_bitsize should maybe be standard_integer_type_bitsize). > Also, should we special-case the int128 case so we always get __int128 > if the backend supports TImode? No, the (TImode, __int128) pair should be handled the same way as all the other __intN types rather than special-cased (of course you should ensure the patch does not end up changing the set of configurations for which __int128 is available). -- Joseph S. Myers jos...@codesourcery.com