1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

add missing/nan.c

instead of scattering #ifdef HAVE_NANF here and there define our
own nan() unless defined elsewhere.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shyouhei 2018-01-20 03:16:59 +00:00
parent 76b609c8c3
commit 782236e3bd
5 changed files with 31 additions and 22 deletions

28
missing/nan.c Normal file
View file

@ -0,0 +1,28 @@
#include "ruby/missing.h"
#include <assert.h>
#include <stdlib.h>
#include <string.h>
double
nan(const char *spec)
{
#if 0
/* FIXME: we have not yet seen any situation this is
* necessary. Please write a proper implementation that
* covers this branch. */
if (spec && spec[0]) {
double generated_nan;
int len = snprintf(NULL, 0, "NAN(%s)", spec);
char *buf = malloc(len + 1); /* +1 for NUL */
sprintf(buf, "NAN(%s)", spec);
generated_nan = strtod(buf, NULL);
free(buf);
return generated_nan;
}
else
#endif
{
assert(!spec || !spec[0]);
return (double)NAN;
}
}