From 5c3c90c064aa52c83637aa7b5fb49411b89a51e6 Mon Sep 17 00:00:00 2001 From: pavel Date: Mon, 12 Nov 2018 23:25:45 +0100 Subject: [PATCH] fix overflow in #i_gcd --- core/src/main/java/org/jruby/util/Numeric.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/jruby/util/Numeric.java b/core/src/main/java/org/jruby/util/Numeric.java index 3cf25a184b3..5111fb06d84 100644 --- a/core/src/main/java/org/jruby/util/Numeric.java +++ b/core/src/main/java/org/jruby/util/Numeric.java @@ -514,10 +514,10 @@ public static long i_gcd(long x, long y) { if (x == Long.MIN_VALUE) { if (y == Long.MIN_VALUE) return x; - return 1 << Long.numberOfTrailingZeros(Math.abs(y)); + return 1L << Long.numberOfTrailingZeros(Math.abs(y)); } if (y == Long.MIN_VALUE) { - return 1 << Long.numberOfTrailingZeros(Math.abs(x)); + return 1L << Long.numberOfTrailingZeros(Math.abs(x)); } x = Math.abs(x);