aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/algorithm.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/common/algorithm.h b/common/algorithm.h
index 67ffe122f9..917fafd639 100644
--- a/common/algorithm.h
+++ b/common/algorithm.h
@@ -242,8 +242,14 @@ void sort(T first, T last) {
*/
template<class T>
T gcd(T a, T b) {
+#ifdef _MSC_VER
if (a < 0) a = -a;
if (b < 0) b = -b;
+#else
+ if (a <= 0) a = -a;
+ if (b <= 0) b = -b;
+#endif
+
while (a > 0) {
T tmp = a;
a = b % a;