reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/AST/ExprConstant.cpp
 2492     return CheckedIntArithmetic(Info, E, LHS, RHS, LHS.getBitWidth() * 2,
 2495     return CheckedIntArithmetic(Info, E, LHS, RHS, LHS.getBitWidth() + 1,
 2498     return CheckedIntArithmetic(Info, E, LHS, RHS, LHS.getBitWidth() + 1,
 2500   case BO_And: Result = LHS & RHS; return true;
 2501   case BO_Xor: Result = LHS ^ RHS; return true;
 2502   case BO_Or:  Result = LHS | RHS; return true;
 2505     if (RHS == 0) {
 2509     Result = (Opcode == BO_Rem ? LHS % RHS : LHS / RHS);
 2509     Result = (Opcode == BO_Rem ? LHS % RHS : LHS / RHS);
 2512     if (RHS.isNegative() && RHS.isAllOnesValue() &&
 2512     if (RHS.isNegative() && RHS.isAllOnesValue() &&
 2520       RHS &= APSInt(llvm::APInt(RHS.getBitWidth(),
 2520       RHS &= APSInt(llvm::APInt(RHS.getBitWidth(),
 2522                     RHS.isUnsigned());
 2523     else if (RHS.isSigned() && RHS.isNegative()) {
 2523     else if (RHS.isSigned() && RHS.isNegative()) {
 2526       Info.CCEDiag(E, diag::note_constexpr_negative_shift) << RHS;
 2527       RHS = -RHS;
 2527       RHS = -RHS;
 2533     unsigned SA = (unsigned) RHS.getLimitedValue(LHS.getBitWidth()-1);
 2534     if (SA != RHS) {
 2536         << RHS << E->getType() << LHS.getBitWidth();
 2553       RHS &= APSInt(llvm::APInt(RHS.getBitWidth(),
 2553       RHS &= APSInt(llvm::APInt(RHS.getBitWidth(),
 2555                     RHS.isUnsigned());
 2556     else if (RHS.isSigned() && RHS.isNegative()) {
 2556     else if (RHS.isSigned() && RHS.isNegative()) {
 2559       Info.CCEDiag(E, diag::note_constexpr_negative_shift) << RHS;
 2560       RHS = -RHS;
 2560       RHS = -RHS;
 2566     unsigned SA = (unsigned) RHS.getLimitedValue(LHS.getBitWidth()-1);
 2567     if (SA != RHS)
 2569         << RHS << E->getType() << LHS.getBitWidth();
 2574   case BO_LT: Result = LHS < RHS; return true;
 2575   case BO_GT: Result = LHS > RHS; return true;
 2576   case BO_LE: Result = LHS <= RHS; return true;
 2577   case BO_GE: Result = LHS >= RHS; return true;
 2578   case BO_EQ: Result = LHS == RHS; return true;
 2579   case BO_NE: Result = LHS != RHS; return true;