Commit d42afbfb authored by Stefan Behnel's avatar Stefan Behnel

Remove all (incorrect) casts in abs(long long).

parent 55217d45
......@@ -235,20 +235,20 @@ static PyObject* __Pyx_Intern(PyObject* s) {
static CYTHON_INLINE PY_LONG_LONG __Pyx_abs_longlong(PY_LONG_LONG x) {
#if defined (__cplusplus) && __cplusplus >= 201103L
return (unsigned PY_LONG_LONG) std::abs(x);
return std::abs(x);
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
return (unsigned PY_LONG_LONG) llabs(x);
return llabs(x);
#elif defined (_MSC_VER)
// abs() is defined for long, but 64-bits type on MSVC is long long.
// Use MS-specific _abs64() instead, which returns the original (negative) value for abs(-MAX-1)
return _abs64(x);
#elif defined (__GNUC__)
// gcc or clang on 64 bit windows.
return (unsigned PY_LONG_LONG) __builtin_llabs(x);
return __builtin_llabs(x);
#else
if (sizeof(PY_LONG_LONG) <= sizeof(Py_ssize_t))
return (unsigned PY_LONG_LONG) __Pyx_sst_abs(x);
return (x<0) ? (unsigned PY_LONG_LONG)-x : (unsigned PY_LONG_LONG)x;
return __Pyx_sst_abs(x);
return (x<0) ? x*(PY_LONG_LONG)-1 : x;
#endif
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment