mirror of
https://github.com/apache/nuttx.git
synced 2026-05-23 23:28:29 +08:00
libc logic should not directly assign errno, but should use set_errno() macro. This is because in the kernel build, errno is a system call
This commit is contained in:
@@ -48,7 +48,7 @@ double sqrt(double x)
|
||||
|
||||
if (x < 0.0)
|
||||
{
|
||||
errno = EDOM;
|
||||
set_errno(EDOM);
|
||||
return NAN;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ float sqrtf(float x)
|
||||
|
||||
if (x < 0.0)
|
||||
{
|
||||
errno = EDOM;
|
||||
set_errno(EDOM);
|
||||
return NAN;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ long double sqrtl(long double x)
|
||||
|
||||
if (x < 0.0)
|
||||
{
|
||||
errno = EDOM;
|
||||
set_errno(EDOM);
|
||||
return NAN;
|
||||
}
|
||||
|
||||
|
||||
@@ -446,7 +446,7 @@ int vsscanf(FAR const char *buf, FAR const char *fmt, va_list ap)
|
||||
long tmplong;
|
||||
|
||||
errsave = errno;
|
||||
errno = 0;
|
||||
set_errno(0);
|
||||
tmplong = strtol(tmp, &endptr, base);
|
||||
|
||||
/* Number can't be converted */
|
||||
@@ -456,7 +456,7 @@ int vsscanf(FAR const char *buf, FAR const char *fmt, va_list ap)
|
||||
return count;
|
||||
}
|
||||
|
||||
errno = errsave;
|
||||
set_errno(errno);
|
||||
|
||||
/* We have to check whether we need to return a long
|
||||
* or an int.
|
||||
@@ -556,7 +556,7 @@ int vsscanf(FAR const char *buf, FAR const char *fmt, va_list ap)
|
||||
double_t dvalue;
|
||||
|
||||
errsave = errno;
|
||||
errno = 0;
|
||||
set_errno(0);
|
||||
dvalue = strtod(tmp, &endptr);
|
||||
|
||||
/* Number can't be converted */
|
||||
@@ -566,7 +566,7 @@ int vsscanf(FAR const char *buf, FAR const char *fmt, va_list ap)
|
||||
return count;
|
||||
}
|
||||
|
||||
errno = errsave;
|
||||
set_errno(errsave);
|
||||
|
||||
/* We have to check whether we need to return a float
|
||||
* or a double.
|
||||
|
||||
Reference in New Issue
Block a user