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

References

tools/clang/lib/Lex/PPExpressions.cpp
   58   unsigned getBitWidth() const { return Val.getBitWidth(); }
   59   bool isUnsigned() const { return Val.isUnsigned(); }
  130   Result.Val = !!Macro;
  131   Result.Val.setIsUnsigned(false); // Result is signed intmax_t.
  135   if (Result.Val != 0 && ValueLive)
  256         Result.Val = 0;
  257         Result.Val.setIsUnsigned(false); // "0" is signed intmax_t 0.
  305     if (Literal.GetIntegerValue(Result.Val)) {
  310       Result.Val.setIsUnsigned(true);
  314       Result.Val.setIsUnsigned(Literal.isUnsigned);
  320       if (!Literal.isUnsigned && Result.Val.isNegative()) {
  325         Result.Val.setIsUnsigned(true);
  378     if (Result.Val.getBitWidth() > Val.getBitWidth()) {
  379       Result.Val = Val.extend(Result.Val.getBitWidth());
  379       Result.Val = Val.extend(Result.Val.getBitWidth());
  381       assert(Result.Val.getBitWidth() == Val.getBitWidth() &&
  383       Result.Val = Val;
  438     Result.Val = -Result.Val;
  438     Result.Val = -Result.Val;
  441     bool Overflow = !Result.isUnsigned() && Result.Val.isMinSignedValue();
  459     Result.Val = ~Result.Val;
  459     Result.Val = ~Result.Val;
  469     Result.Val = !Result.Val;
  469     Result.Val = !Result.Val;
  471     Result.Val.setIsUnsigned(false);
  482     Result.Val = PeekTok.getKind() == tok::kw_true;
  483     Result.Val.setIsUnsigned(false); // "0" is signed intmax_t 0.
  568     if (Operator == tok::ampamp && LHS.Val == 0)
  570     else if (Operator == tok::pipepipe && LHS.Val != 0)
  572     else if (Operator == tok::question && LHS.Val == 0)
  639         if (!LHS.isUnsigned() && LHS.Val.isNegative())
  641             << LHS.Val.toString(10, true) + " to " +
  642                LHS.Val.toString(10, false)
  644         if (!RHS.isUnsigned() && RHS.Val.isNegative())
  646             << RHS.Val.toString(10, true) + " to " +
  647                RHS.Val.toString(10, false)
  650       LHS.Val.setIsUnsigned(Res.isUnsigned());
  651       RHS.Val.setIsUnsigned(Res.isUnsigned());
  658       if (RHS.Val != 0)
  659         Res = LHS.Val % RHS.Val;
  659         Res = LHS.Val % RHS.Val;
  667       if (RHS.Val != 0) {
  668         if (LHS.Val.isSigned())
  669           Res = llvm::APSInt(LHS.Val.sdiv_ov(RHS.Val, Overflow), false);
  669           Res = llvm::APSInt(LHS.Val.sdiv_ov(RHS.Val, Overflow), false);
  671           Res = LHS.Val / RHS.Val;
  671           Res = LHS.Val / RHS.Val;
  681         Res = llvm::APSInt(LHS.Val.smul_ov(RHS.Val, Overflow), false);
  681         Res = llvm::APSInt(LHS.Val.smul_ov(RHS.Val, Overflow), false);
  683         Res = LHS.Val * RHS.Val;
  683         Res = LHS.Val * RHS.Val;
  688         Res = LHS.Val.ushl_ov(RHS.Val, Overflow);
  688         Res = LHS.Val.ushl_ov(RHS.Val, Overflow);
  690         Res = llvm::APSInt(LHS.Val.sshl_ov(RHS.Val, Overflow), false);
  690         Res = llvm::APSInt(LHS.Val.sshl_ov(RHS.Val, Overflow), false);
  695       unsigned ShAmt = static_cast<unsigned>(RHS.Val.getLimitedValue());
  700       Res = LHS.Val >> ShAmt;
  705         Res = LHS.Val + RHS.Val;
  705         Res = LHS.Val + RHS.Val;
  707         Res = llvm::APSInt(LHS.Val.sadd_ov(RHS.Val, Overflow), false);
  707         Res = llvm::APSInt(LHS.Val.sadd_ov(RHS.Val, Overflow), false);
  711         Res = LHS.Val - RHS.Val;
  711         Res = LHS.Val - RHS.Val;
  713         Res = llvm::APSInt(LHS.Val.ssub_ov(RHS.Val, Overflow), false);
  713         Res = llvm::APSInt(LHS.Val.ssub_ov(RHS.Val, Overflow), false);
  716       Res = LHS.Val <= RHS.Val;
  716       Res = LHS.Val <= RHS.Val;
  720       Res = LHS.Val < RHS.Val;
  720       Res = LHS.Val < RHS.Val;
  724       Res = LHS.Val >= RHS.Val;
  724       Res = LHS.Val >= RHS.Val;
  728       Res = LHS.Val > RHS.Val;
  728       Res = LHS.Val > RHS.Val;
  732       Res = LHS.Val != RHS.Val;
  732       Res = LHS.Val != RHS.Val;
  736       Res = LHS.Val == RHS.Val;
  736       Res = LHS.Val == RHS.Val;
  740       Res = LHS.Val & RHS.Val;
  740       Res = LHS.Val & RHS.Val;
  743       Res = LHS.Val ^ RHS.Val;
  743       Res = LHS.Val ^ RHS.Val;
  746       Res = LHS.Val | RHS.Val;
  746       Res = LHS.Val | RHS.Val;
  749       Res = (LHS.Val != 0 && RHS.Val != 0);
  749       Res = (LHS.Val != 0 && RHS.Val != 0);
  753       Res = (LHS.Val != 0 || RHS.Val != 0);
  753       Res = (LHS.Val != 0 || RHS.Val != 0);
  762       Res = RHS.Val; // LHS = LHS,RHS -> RHS.
  776       bool AfterColonLive = ValueLive && LHS.Val == 0;
  790       Res = LHS.Val != 0 ? RHS.Val : AfterColonVal.Val;
  790       Res = LHS.Val != 0 ? RHS.Val : AfterColonVal.Val;
  790       Res = LHS.Val != 0 ? RHS.Val : AfterColonVal.Val;
  814     LHS.Val = Res;
  873     return {ResVal.Val != 0, DT.IncludedUndefinedIds, ResVal.getRange()};
  898   return {ResVal.Val != 0, DT.IncludedUndefinedIds, ResVal.getRange()};