http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46155
--- Comment #5 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2010-10-24 14:07:25 UTC --- On Sun, 24 Oct 2010, david.kirkby at onetel dot net wrote: > On an IBM server running AIX 5.3, 'fprnd_t' is clearly defined in the IBM > system header file /usr/include/float.h > > -bash-4.1$ grep fprnd_t /usr/include/float.h > typedef unsigned short fprnd_t; > fprnd_t fp_read_rnd(); > fprnd_t fp_swap_rnd(); > fprnd_t fp_read_rnd(void); > fprnd_t fp_swap_rnd(fprnd_t rnd); > > as an unsigned short. > > But when gcc is built, it creates several files called 'float.h', but all of > these lack any references at all to fprnd_t Indeed, fprnd_t is not a type that ISO C permits to be declared in float.h, and nor are the other identifiers in a reserved namespace. So certainly in ISO C mode GCC's float.h must not include those declarations. I haven't seen documentation for those functions and types, but they sound rather like they should be obsoleted by the standard <fenv.h> facilities such as fegetround and fesetround.