I have a question about the _Fract types and their conversion routines. If I compile this program:
extern void abort (void); int main () { signed char a = -1; _Sat unsigned _Fract b = a; if (b != 0.0ur) abort(); return 0; } with -O0 and on a MIPS32 system where char is 1 byte and unsigned (int) is 4 bytes I see a call to '__satfractqiuhq' for the conversion. Now I think the 'qi' part of the name is for the 'from type' of the conversion, a 1 byte signed type (signed char), and the 'uhq' part is for the 'to' part of the conversion. But 'uhq' would be a 2 byte unsigned fract, and the unsigned fract type on MIPS should be 4 bytes (unsigned int is 4 bytes). So shouldn't GCC have generated a call to __satfractqiusq instead? Or am I confused? Steve Ellcey sell...@imgtec.com