On sh-elf, when compiling with -m3e or -m4-single-only, float and double are 32-bits wide, and long double is 64-bits wide. The problem is that some of the LDBL_ constants defined in float.h are rounded to 32-bits, since they're double unless explicitly specified otherwise. This patch fixes this problem. I'm checking this in.