Reminder to please always mention the reason for the revert/recommit in the commit message.
On Thu, Jan 19, 2023 at 2:37 PM Timm Bäder via cfe-commits <cfe-commits@lists.llvm.org> wrote: > > > Author: Timm Bäder > Date: 2023-01-19T12:37:20+01:00 > New Revision: 2dbcfd298f7cb1454ca16f544b7df980ec8fc17d > > URL: > https://github.com/llvm/llvm-project/commit/2dbcfd298f7cb1454ca16f544b7df980ec8fc17d > DIFF: > https://github.com/llvm/llvm-project/commit/2dbcfd298f7cb1454ca16f544b7df980ec8fc17d.diff > > LOG: Revert "[clang][Interp][NFC] Move CheckDivRem() implementation into > Interp.cpp" > > This reverts commit 9ee0d7494eb35f5addefcb730cdf5c002ddeacd2. > > Added: > > > Modified: > clang/lib/AST/Interp/Interp.cpp > clang/lib/AST/Interp/Interp.h > > Removed: > > > > ################################################################################ > diff --git a/clang/lib/AST/Interp/Interp.cpp > b/clang/lib/AST/Interp/Interp.cpp > index d7195148d015..76ade4401e08 100644 > --- a/clang/lib/AST/Interp/Interp.cpp > +++ b/clang/lib/AST/Interp/Interp.cpp > @@ -422,26 +422,6 @@ bool CheckShift(InterpState &S, CodePtr OpPC, const RT > &RHS, unsigned Bits) { > return true; > } > > -template <typename T> > -bool CheckDivRem(InterpState &S, CodePtr OpPC, const T &LHS, const T &RHS) { > - if (RHS.isZero()) { > - const SourceInfo &Loc = S.Current->getSource(OpPC); > - S.FFDiag(Loc, diag::note_expr_divide_by_zero); > - return false; > - } > - > - if (LHS.isSigned() && LHS.isMin() && RHS.isNegative() && RHS.isMinusOne()) > { > - APSInt LHSInt = LHS.toAPSInt(); > - SmallString<32> Trunc; > - (-LHSInt.extend(LHSInt.getBitWidth() + 1)).toString(Trunc, 10); > - const SourceInfo &Loc = S.Current->getSource(OpPC); > - const Expr *E = S.Current->getExpr(OpPC); > - S.CCEDiag(Loc, diag::note_constexpr_overflow) << Trunc << E->getType(); > - return false; > - } > - return true; > -} > - > static void DiagnoseUninitializedSubobject(InterpState &S, const SourceInfo > &SI, > QualType SubObjType, > SourceLocation SubObjLoc) { > > diff --git a/clang/lib/AST/Interp/Interp.h b/clang/lib/AST/Interp/Interp.h > index 3fa977d4a02e..903c68f4511c 100644 > --- a/clang/lib/AST/Interp/Interp.h > +++ b/clang/lib/AST/Interp/Interp.h > @@ -100,7 +100,24 @@ bool CheckShift(InterpState &S, CodePtr OpPC, const RT > &RHS, unsigned Bits); > > /// Checks if Div/Rem operation on LHS and RHS is valid. > template <typename T> > -bool CheckDivRem(InterpState &S, CodePtr OpPC, const T &LHS, const T &RHS); > +bool CheckDivRem(InterpState &S, CodePtr OpPC, const T &LHS, const T &RHS) { > + if (RHS.isZero()) { > + const SourceInfo &Loc = S.Current->getSource(OpPC); > + S.FFDiag(Loc, diag::note_expr_divide_by_zero); > + return false; > + } > + > + if (LHS.isSigned() && LHS.isMin() && RHS.isNegative() && RHS.isMinusOne()) > { > + APSInt LHSInt = LHS.toAPSInt(); > + SmallString<32> Trunc; > + (-LHSInt.extend(LHSInt.getBitWidth() + 1)).toString(Trunc, 10); > + const SourceInfo &Loc = S.Current->getSource(OpPC); > + const Expr *E = S.Current->getExpr(OpPC); > + S.CCEDiag(Loc, diag::note_constexpr_overflow) << Trunc << E->getType(); > + return false; > + } > + return true; > +} > > /// Interpreter entry point. > bool Interpret(InterpState &S, APValue &Result); > > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits