b3278554af
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Consume closing brace on NAN(...) sequence. * stdlib/Makefile (tests): Add tst-strtod6. * stdlib/tst-strtod6.c: New file. * inet/inet6_opt.c (inet6_opt_init): Check extlen for overflow.
54 lines
1016 B
C
54 lines
1016 B
C
#include <math.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
static int
|
|
do_test (void)
|
|
{
|
|
static const char str[] = "NaN(blabla)something";
|
|
char *endp;
|
|
int result = 0;
|
|
|
|
double d = strtod (str, &endp);
|
|
if (!isnan (d))
|
|
{
|
|
puts ("strtod did not return NAN");
|
|
result = 1;
|
|
}
|
|
if (strcmp (endp, "something") != 0)
|
|
{
|
|
puts ("strtod set incorrect end pointer");
|
|
result = 1;
|
|
}
|
|
|
|
float f = strtof (str, &endp);
|
|
if (!isnanf (f))
|
|
{
|
|
puts ("strtof did not return NAN");
|
|
result = 1;
|
|
}
|
|
if (strcmp (endp, "something") != 0)
|
|
{
|
|
puts ("strtof set incorrect end pointer");
|
|
result = 1;
|
|
}
|
|
|
|
long double ld = strtold (str, &endp);
|
|
if (!isnan (ld))
|
|
{
|
|
puts ("strtold did not return NAN");
|
|
result = 1;
|
|
}
|
|
if (strcmp (endp, "something") != 0)
|
|
{
|
|
puts ("strtold set incorrect end pointer");
|
|
result = 1;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
#define TEST_FUNCTION do_test ()
|
|
#include "../test-skeleton.c"
|