| Index: runtime/vm/intermediate_language.cc
 | 
| ===================================================================
 | 
| --- runtime/vm/intermediate_language.cc	(revision 38492)
 | 
| +++ runtime/vm/intermediate_language.cc	(working copy)
 | 
| @@ -2729,11 +2729,11 @@
 | 
|    ASSERT(value_boundary.IsConstant());
 | 
|    ASSERT(shift_count >= 0);
 | 
|    int64_t limit = 64 - shift_count;
 | 
| -  int64_t value = static_cast<int64_t>(value_boundary.ConstantValue());
 | 
| +  int64_t value = value_boundary.ConstantValue();
 | 
|  
 | 
|    if ((value == 0) ||
 | 
|        (shift_count == 0) ||
 | 
| -      ((limit > 0) && (Utils::IsInt(limit, value)))) {
 | 
| +      ((limit > 0) && Utils::IsInt(static_cast<int>(limit), value))) {
 | 
|      // Result stays in 64 bit range.
 | 
|      int64_t result = value << shift_count;
 | 
|      return RangeBoundary(result);
 | 
| @@ -3696,10 +3696,10 @@
 | 
|      // Product of left and right max values stays in 64 bit range.
 | 
|      const int64_t mul_max = left_max * right_max;
 | 
|      if (Smi::IsValid(mul_max) && Smi::IsValid(-mul_max)) {
 | 
| -      const intptr_t r_min =
 | 
| +      const int64_t r_min =
 | 
|            OnlyPositiveOrZero(*left_range, *right_range) ? 0 : -mul_max;
 | 
|        *result_min = RangeBoundary::FromConstant(r_min);
 | 
| -      const intptr_t r_max =
 | 
| +      const int64_t r_max =
 | 
|            OnlyNegativeOrZero(*left_range, *right_range) ? 0 : mul_max;
 | 
|        *result_max = RangeBoundary::FromConstant(r_max);
 | 
|        return true;
 | 
| 
 |