This code compile, run and print 0 on Tru64 Unix. On Linux, it crashes with a segfault. Is it legal to call nanl(0)? I tried checking the C standard, but that didn't make me wiser. :( #include <math.h> #include <stdio.h> int main() { long double a = nanl(0); printf("%Lf\n", a); return 0; }