Lines Matching refs:overflow
864 bool overflow;
866 auto r = negs(payload, overflow);
867 if (overflow) r = hook.onOverflow!op(payload);
984 bool overflow;
985 auto r = opChecked!op(payload, rhs, overflow);
986 if (overflow) r = hook.onOverflow!op(payload, rhs);
1119 bool overflow;
1120 auto r = opChecked!op(lhs, T(payload), overflow);
1121 if (overflow) r = hook.onOverflow!op(lhs, payload);
2667 opChecked(string x, L, R)(const L lhs, const R rhs, ref bool overflow)
2702 overflow = true;
2715 overflow = true;
2720 overflow = true;
2742 return pow(lhs, rhs, overflow);
2757 return impl(Result(lhs), Result(rhs), overflow);
2763 return impl(Result(lhs), Result(rhs), overflow);
2774 return impl(Result(lhs), Result(rhs), overflow);
2797 return subu(Result(rhs), Result(-lhs), overflow);
2802 return subu(Result(lhs), Result(-rhs), overflow);
2804 return addu(Result(lhs), Result(rhs), overflow);
2815 return addu(Result(lhs), Result(-rhs), overflow);
2817 return subu(Result(lhs), Result(rhs), overflow);
2829 return mulu(Result(lhs), Result(rhs), overflow);
2847 overflow = true;
2854 bool overflow;
2855 assert(opChecked!"+"(const short(1), short(1), overflow) == 2 && !overflow);
2856 assert(opChecked!"+"(1, 1, overflow) == 2 && !overflow);
2857 assert(opChecked!"+"(1, 1u, overflow) == 2 && !overflow);
2858 assert(opChecked!"+"(-1, 1u, overflow) == 0 && !overflow);
2859 assert(opChecked!"+"(1u, -1, overflow) == 0 && !overflow);
2865 bool overflow;
2866 assert(opChecked!"-"(1, 1, overflow) == 0 && !overflow);
2867 assert(opChecked!"-"(1, 1u, overflow) == 0 && !overflow);
2868 assert(opChecked!"-"(1u, -1, overflow) == 2 && !overflow);
2869 assert(opChecked!"-"(-1, 1u, overflow) == 0 && overflow);
2874 bool overflow;
2875 assert(opChecked!"*"(2, 3, overflow) == 6 && !overflow);
2876 assert(opChecked!"*"(2, 3u, overflow) == 6 && !overflow);
2877 assert(opChecked!"*"(1u, -1, overflow) == 0 && overflow);
2883 bool overflow;
2884 assert(opChecked!"/"(6, 3, overflow) == 2 && !overflow);
2885 assert(opChecked!"/"(6, 3, overflow) == 2 && !overflow);
2886 assert(opChecked!"/"(6u, 3, overflow) == 2 && !overflow);
2887 assert(opChecked!"/"(6, 3u, overflow) == 2 && !overflow);
2888 assert(opChecked!"/"(11, 0, overflow) == 0 && overflow);
2889 overflow = false;
2890 assert(opChecked!"/"(6u, 0, overflow) == 0 && overflow);
2891 overflow = false;
2892 assert(opChecked!"/"(-6, 2u, overflow) == 0 && overflow);
2893 overflow = false;
2894 assert(opChecked!"/"(-6, 0u, overflow) == 0 && overflow);
2895 overflow = false;
2896 assert(opChecked!"cmp"(0u, -6, overflow) == 1 && overflow);
2897 overflow = false;
2898 assert(opChecked!"|"(1, 2, overflow) == 3 && !overflow);
2905 auto pow(L, R)(const L lhs, const R rhs, ref bool overflow)
2927 if (lhs < 0) overflow = true;
2945 overflow = true;
2950 return powImpl(b, cast(uint) rhs, overflow);
2955 private T powImpl(T)(T b, uint e, ref bool overflow)
2971 r = mul(r, b, overflow);
2974 b = mul(b, b, overflow);
2983 bool overflow;
2984 assert(opChecked!"^^"(T(0), 0, overflow) == 1);
2985 assert(opChecked!"^^"(-2, T(0), overflow) == 1);
2986 assert(opChecked!"^^"(-2, T(1), overflow) == -2);
2987 assert(opChecked!"^^"(-1, -1, overflow) == -1);
2988 assert(opChecked!"^^"(-2, 1, overflow) == -2);
2989 assert(opChecked!"^^"(-2, -1, overflow) == 0);
2990 assert(opChecked!"^^"(-2, 4u, overflow) == 16);
2991 assert(!overflow);
2992 assert(opChecked!"^^"(-2, 3u, overflow) == 0);
2993 assert(overflow);
2994 overflow = false;
2995 assert(opChecked!"^^"(3, 64u, overflow) == 0);
2996 assert(overflow);
2997 overflow = false;
3000 assert(opChecked!"^^"(x, i, overflow) == x ^^ i);
3001 assert(!overflow);
3003 assert(opChecked!"^^"(x, e, overflow) == x ^^ e);
3004 assert(overflow);