On Sat, 23 Oct 2010, Landry Breuil wrote:
> i'm porting an app which uses:
> static gdouble line_speed = NAN;
> static gdouble line_course = NAN;
>
> which yields:
> gpspoint.c:84: error: initializer element is not constant
> gpspoint.c:85: error: initializer element is not constant
>
> Kirill Bychkov pointed out
> (http://marc.info/?l=openbsd-ports&m=128645629406557&w=2)
> to me that netbsd had the following related pr which affects us too:
> http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=40695
>
> Can we consider using the same libc fix ?
I'm with Mike in not seeing the benefit of the linker warning, especially
if the math.h change still uses __nan for the non-GCC case, or rather for
the not-gcc-3.3-or-newer case. The gcc2 platforms will obviously continue
to be non-compliant. ok guenther@ on the math.h bit.
> is the initialization using:
> static gdouble line_speed = __builtin_nanf("");
> static gdouble line_course = __builtin_nanf("");
>
> a valid temporary fix for the port ?
If gdouble is just double, then might as well use __builtin_nan("") to
avoid the float->double conversion. But I would think the first test
would be "does it compile, run, and work?"
Philip