diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index aee50c0b6c..7135638253 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -1726,7 +1726,7 @@ @ cdecl labs(long) MSVCRT_labs @ cdecl ldexp(double long) MSVCRT_ldexp @ cdecl ldiv(long long) MSVCRT_ldiv -@ stub llabs +@ cdecl -ret64 llabs(int64) MSVCRT_llabs @ stub lldiv @ cdecl localeconv() MSVCRT_localeconv @ cdecl log(double) MSVCRT_log diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 2f9ad708a4..39ad0375af 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -2085,7 +2085,7 @@ @ cdecl labs(long) MSVCRT_labs @ cdecl ldexp(double long) MSVCRT_ldexp @ cdecl ldiv(long long) MSVCRT_ldiv -@ stub llabs +@ cdecl -ret64 llabs(int64) MSVCRT_llabs @ stub lldiv @ cdecl localeconv() MSVCRT_localeconv @ cdecl log(double) MSVCRT_log diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index 3a1aa1deec..d67b2e8a34 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -765,6 +765,14 @@ MSVCRT_long CDECL MSVCRT_labs( MSVCRT_long n ) return n >= 0 ? n : -n; } +/********************************************************************* + * llabs (MSVCRT.@) + */ +MSVCRT_longlong CDECL MSVCRT_llabs( MSVCRT_longlong n ) +{ + return n >= 0 ? n : -n; +} + /********************************************************************* * _abs64 (MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 3349c9f3bf..6c4e763dad 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -67,6 +67,7 @@ typedef unsigned short MSVCRT__ino_t; typedef unsigned int MSVCRT__fsize_t; typedef int MSVCRT_long; typedef unsigned int MSVCRT_ulong; +typedef __int64 MSVCRT_longlong; #ifdef _WIN64 typedef unsigned __int64 MSVCRT_size_t; typedef __int64 MSVCRT_intptr_t;