Author: Timm Bäder Date: 2023-07-04T17:35:28+02:00 New Revision: 0d40973644ba7f3efe666735306646579a7ffe5e
URL: https://github.com/llvm/llvm-project/commit/0d40973644ba7f3efe666735306646579a7ffe5e DIFF: https://github.com/llvm/llvm-project/commit/0d40973644ba7f3efe666735306646579a7ffe5e.diff LOG: [clang][Interp][NFC] Move CastFP to Interp.h It's not a Check* function, so try to stay consistent and move this to the header. 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 c3503f4a078958..cf9e5b8ea6bd29 100644 --- a/clang/lib/AST/Interp/Interp.cpp +++ b/clang/lib/AST/Interp/Interp.cpp @@ -496,14 +496,6 @@ bool CheckFloatResult(InterpState &S, CodePtr OpPC, APFloat::opStatus Status) { return true; } -bool CastFP(InterpState &S, CodePtr OpPC, const llvm::fltSemantics *Sem, - llvm::RoundingMode RM) { - Floating F = S.Stk.pop<Floating>(); - Floating Result = F.toSemantics(Sem, RM); - S.Stk.push<Floating>(Result); - return true; -} - bool Interpret(InterpState &S, APValue &Result) { // The current stack frame when we started Interpret(). // This is being used by the ops to determine wheter diff --git a/clang/lib/AST/Interp/Interp.h b/clang/lib/AST/Interp/Interp.h index f179c0486bdbdb..d70b732f6fd865 100644 --- a/clang/lib/AST/Interp/Interp.h +++ b/clang/lib/AST/Interp/Interp.h @@ -1421,9 +1421,13 @@ template <PrimType TIn, PrimType TOut> bool Cast(InterpState &S, CodePtr OpPC) { /// 1) Pops a Floating from the stack. /// 2) Pushes a new floating on the stack that uses the given semantics. -/// Not templated, so implemented in Interp.cpp. -bool CastFP(InterpState &S, CodePtr OpPC, const llvm::fltSemantics *Sem, - llvm::RoundingMode RM); +inline bool CastFP(InterpState &S, CodePtr OpPC, const llvm::fltSemantics *Sem, + llvm::RoundingMode RM) { + Floating F = S.Stk.pop<Floating>(); + Floating Result = F.toSemantics(Sem, RM); + S.Stk.push<Floating>(Result); + return true; +} template <PrimType Name, class T = typename PrimConv<Name>::T> bool CastIntegralFloating(InterpState &S, CodePtr OpPC, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits