Lines Matching refs:overflow
619 bool overflow; member
621 auto r = negs(payload, overflow);
622 if (overflow) r = hook.onOverflow!op(payload);
728 bool overflow;
729 auto r = opChecked!op(payload, rhs, overflow);
730 if (overflow) r = hook.onOverflow!op(payload, rhs);
855 bool overflow;
856 auto r = opChecked!op(lhs, T(payload), overflow);
857 if (overflow) r = hook.onOverflow!op(42);
2275 opChecked(string x, L, R)(const L lhs, const R rhs, ref bool overflow)
2310 overflow = true;
2323 overflow = true;
2328 overflow = true;
2350 return pow(lhs, rhs, overflow);
2365 return impl(Result(lhs), Result(rhs), overflow);
2371 return impl(Result(lhs), Result(rhs), overflow);
2382 return impl(Result(lhs), Result(rhs), overflow);
2405 return subu(Result(rhs), Result(-lhs), overflow);
2410 return subu(Result(lhs), Result(-rhs), overflow);
2412 return addu(Result(lhs), Result(rhs), overflow);
2423 return addu(Result(lhs), Result(-rhs), overflow);
2425 return subu(Result(lhs), Result(rhs), overflow);
2437 return mulu(Result(lhs), Result(rhs), overflow);
2455 overflow = true;
2462 bool overflow;
2463 assert(opChecked!"+"(const short(1), short(1), overflow) == 2 && !overflow);
2464 assert(opChecked!"+"(1, 1, overflow) == 2 && !overflow);
2465 assert(opChecked!"+"(1, 1u, overflow) == 2 && !overflow);
2466 assert(opChecked!"+"(-1, 1u, overflow) == 0 && !overflow);
2467 assert(opChecked!"+"(1u, -1, overflow) == 0 && !overflow);
2473 bool overflow;
2474 assert(opChecked!"-"(1, 1, overflow) == 0 && !overflow);
2475 assert(opChecked!"-"(1, 1u, overflow) == 0 && !overflow);
2476 assert(opChecked!"-"(1u, -1, overflow) == 2 && !overflow);
2477 assert(opChecked!"-"(-1, 1u, overflow) == 0 && overflow);
2482 bool overflow;
2483 assert(opChecked!"*"(2, 3, overflow) == 6 && !overflow);
2484 assert(opChecked!"*"(2, 3u, overflow) == 6 && !overflow);
2485 assert(opChecked!"*"(1u, -1, overflow) == 0 && overflow);
2491 bool overflow;
2492 assert(opChecked!"/"(6, 3, overflow) == 2 && !overflow);
2493 assert(opChecked!"/"(6, 3, overflow) == 2 && !overflow);
2494 assert(opChecked!"/"(6u, 3, overflow) == 2 && !overflow);
2495 assert(opChecked!"/"(6, 3u, overflow) == 2 && !overflow);
2496 assert(opChecked!"/"(11, 0, overflow) == 0 && overflow);
2497 overflow = false;
2498 assert(opChecked!"/"(6u, 0, overflow) == 0 && overflow);
2499 overflow = false;
2500 assert(opChecked!"/"(-6, 2u, overflow) == 0 && overflow);
2501 overflow = false;
2502 assert(opChecked!"/"(-6, 0u, overflow) == 0 && overflow);
2503 overflow = false;
2504 assert(opChecked!"cmp"(0u, -6, overflow) == 1 && overflow);
2505 overflow = false;
2506 assert(opChecked!"|"(1, 2, overflow) == 3 && !overflow);
2513 auto pow(L, R)(const L lhs, const R rhs, ref bool overflow)
2535 if (lhs < 0) overflow = true;
2553 overflow = true;
2558 return powImpl(b, cast(uint) rhs, overflow);
2563 private T powImpl(T)(T b, uint e, ref bool overflow)
2579 r = mul(r, b, overflow);
2582 b = mul(b, b, overflow);
2591 bool overflow;
2592 assert(opChecked!"^^"(T(0), 0, overflow) == 1);
2593 assert(opChecked!"^^"(-2, T(0), overflow) == 1);
2594 assert(opChecked!"^^"(-2, T(1), overflow) == -2);
2595 assert(opChecked!"^^"(-1, -1, overflow) == -1);
2596 assert(opChecked!"^^"(-2, 1, overflow) == -2);
2597 assert(opChecked!"^^"(-2, -1, overflow) == 0);
2598 assert(opChecked!"^^"(-2, 4u, overflow) == 16);
2599 assert(!overflow);
2600 assert(opChecked!"^^"(-2, 3u, overflow) == 0);
2601 assert(overflow);
2602 overflow = false;
2603 assert(opChecked!"^^"(3, 64u, overflow) == 0);
2604 assert(overflow);
2605 overflow = false;
2608 assert(opChecked!"^^"(x, i, overflow) == x ^^ i);
2609 assert(!overflow);
2611 assert(opChecked!"^^"(x, e, overflow) == x ^^ e);
2612 assert(overflow);