[clang] 0d40973 - [clang][Interp][NFC] Move CastFP to Interp.h
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 4 08:36:01 PDT 2023
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,
More information about the cfe-commits
mailing list