[PATCH] msvcrt: Implement nearbyint and nearbyintf

Stefan Silviu sylviu44 at gmail.com
Thu Nov 17 08:15:27 CST 2016


Fixes https://bugs.winehq.org/show_bug.cgi?id=41695

Signed-off-by: Stefan Silviu <sylviu44 at gmail.com>
---
 .../api-ms-win-crt-math-l1-1-0.spec                      |  4 ++--
 dlls/msvcrt/math.c                                       | 16 ++++++++++++++++
 dlls/msvcrt/msvcrt.spec                                  |  2 ++
 dlls/ucrtbase/ucrtbase.spec                              |  4 ++--
 include/msvcrt/math.h                                    |  3 +++
 5 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec b/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
index f886b97..b781276 100644
--- a/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-math-l1-1-0/api-ms-win-crt-math-l1-1-0.spec
@@ -291,8 +291,8 @@
 @ stub nan
 @ stub nanf
 @ stub nanl
-@ stub nearbyint
-@ stub nearbyintf
+@ cdecl nearbyint(double) ucrtbase.nearbyint
+@ cdecl nearbyintf(float) ucrtbase.nearbyintf
 @ stub nearbyintl
 @ cdecl nextafter(double double) ucrtbase.nextafter
 @ cdecl nextafterf(float float) ucrtbase.nextafterf
diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c
index e87151a..368dcc4 100644
--- a/dlls/msvcrt/math.c
+++ b/dlls/msvcrt/math.c
@@ -1354,6 +1354,22 @@ double CDECL MSVCRT__yn(int order, double num)
 }
 
 /*********************************************************************
+ *		_nearbyint (MSVCRT.@)
+ */
+double CDECL MSVCRT_nearbyint(double num)
+{
+  return nearbyint(num);
+}
+
+/*********************************************************************
+ *		_nearbyintf (MSVCRT.@)
+ */
+float CDECL MSVCRT_nearbyintf(float num)
+{
+  return nearbyintf(num);
+}
+
+/*********************************************************************
  *		_nextafter (MSVCRT.@)
  */
 double CDECL MSVCRT__nextafter(double num, double next)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 0c1d4ad..d44e880 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -837,6 +837,8 @@
 @ cdecl _msize(ptr)
 # stub -arch=win32 _msize_debug(ptr long)
 # stub -arch=win64 _msize_dbg(ptr long)
+@ cdecl nearbyint(double) MSVCRT_nearbyint
+@ cdecl nearbyintf(float) MSVCRT_nearbyintf
 @ cdecl _nextafter(double double) MSVCRT__nextafter
 @ cdecl -arch=arm,x86_64 _nextafterf(float float) MSVCRT__nextafterf
 @ cdecl _onexit(ptr) MSVCRT__onexit
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index 2aa0563..111de2e 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -2432,8 +2432,8 @@
 @ stub nan
 @ stub nanf
 @ stub nanl
-@ stub nearbyint
-@ stub nearbyintf
+@ cdecl nearbyint(double) MSVCRT_nearbyint
+@ cdecl nearbyintf(float) MSVCRT_nearbyintf
 @ stub nearbyintl
 @ cdecl nextafter(double double) MSVCRT__nextafter
 @ cdecl nextafterf(float float) MSVCRT__nextafterf
diff --git a/include/msvcrt/math.h b/include/msvcrt/math.h
index c76fe0d..5b42b4d 100644
--- a/include/msvcrt/math.h
+++ b/include/msvcrt/math.h
@@ -148,6 +148,9 @@ float __cdecl fmodf(float, float);
 
 #define ldexpf(x,y) ((float)ldexp((double)(x),(y)))
 
+double __cdecl nearbyint(double);
+float __cdecl nearbyintf(float);
+
 float __cdecl _hypotf(float, float);
 
 int __cdecl _matherr(struct _exception*);
-- 
2.10.2




More information about the wine-patches mailing list