| 102 | } |
| 103 | |
| 104 | absl::StatusOr<int64_t> CheckedNegation(int64_t v) { |
| 105 | #if ABSL_HAVE_BUILTIN(__builtin_mul_overflow) |
| 106 | int64_t prod; |
| 107 | if (!__builtin_mul_overflow(v, -1, &prod)) { |
| 108 | return prod; |
| 109 | } |
| 110 | return absl::OutOfRangeError("integer overflow"); |
| 111 | #else |
| 112 | CEL_RETURN_IF_ERROR(CheckRange(v != kInt64Min, "integer overflow")); |
| 113 | return -v; |
| 114 | #endif |
| 115 | } |
| 116 | |
| 117 | absl::StatusOr<int64_t> CheckedMul(int64_t x, int64_t y) { |
| 118 | #if ABSL_HAVE_BUILTIN(__builtin_mul_overflow) |
no test coverage detected