[clang] 6469281 - [clang][Interp][NFC] Remove InitFn code
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 23 03:19:54 PST 2023
Author: Timm Bäder
Date: 2023-01-23T12:19:36+01:00
New Revision: 6469281100e654f690af8d5bcf0123e4105cafbe
URL: https://github.com/llvm/llvm-project/commit/6469281100e654f690af8d5bcf0123e4105cafbe
DIFF: https://github.com/llvm/llvm-project/commit/6469281100e654f690af8d5bcf0123e4105cafbe.diff
LOG: [clang][Interp][NFC] Remove InitFn code
This is unused.
Added:
Modified:
clang/lib/AST/Interp/ByteCodeExprGen.cpp
clang/lib/AST/Interp/ByteCodeExprGen.h
Removed:
################################################################################
diff --git a/clang/lib/AST/Interp/ByteCodeExprGen.cpp b/clang/lib/AST/Interp/ByteCodeExprGen.cpp
index 8bedf6898bb5..615dbdefefbe 100644
--- a/clang/lib/AST/Interp/ByteCodeExprGen.cpp
+++ b/clang/lib/AST/Interp/ByteCodeExprGen.cpp
@@ -41,45 +41,19 @@ template <class Emitter> class DeclScope final : public LocalScope<Emitter> {
/// Scope used to handle initialization methods.
template <class Emitter> class OptionScope {
public:
- using InitFnRef = typename ByteCodeExprGen<Emitter>::InitFnRef;
- using ChainedInitFnRef = std::function<bool(InitFnRef)>;
-
/// Root constructor, compiling or discarding primitives.
OptionScope(ByteCodeExprGen<Emitter> *Ctx, bool NewDiscardResult)
- : Ctx(Ctx), OldDiscardResult(Ctx->DiscardResult),
- OldInitFn(std::move(Ctx->InitFn)) {
+ : Ctx(Ctx), OldDiscardResult(Ctx->DiscardResult) {
Ctx->DiscardResult = NewDiscardResult;
- Ctx->InitFn = std::optional<InitFnRef>{};
- }
-
- /// Root constructor, setting up compilation state.
- OptionScope(ByteCodeExprGen<Emitter> *Ctx, InitFnRef NewInitFn)
- : Ctx(Ctx), OldDiscardResult(Ctx->DiscardResult),
- OldInitFn(std::move(Ctx->InitFn)) {
- Ctx->DiscardResult = true;
- Ctx->InitFn = NewInitFn;
}
- /// Extends the chain of initialisation pointers.
- OptionScope(ByteCodeExprGen<Emitter> *Ctx, ChainedInitFnRef NewInitFn)
- : Ctx(Ctx), OldDiscardResult(Ctx->DiscardResult),
- OldInitFn(std::move(Ctx->InitFn)) {
- assert(OldInitFn && "missing initializer");
- Ctx->InitFn = [this, NewInitFn] { return NewInitFn(*OldInitFn); };
- }
-
- ~OptionScope() {
- Ctx->DiscardResult = OldDiscardResult;
- Ctx->InitFn = std::move(OldInitFn);
- }
+ ~OptionScope() { Ctx->DiscardResult = OldDiscardResult; }
private:
/// Parent context.
ByteCodeExprGen<Emitter> *Ctx;
/// Old discard flag to restore.
bool OldDiscardResult;
- /// Old pointer emitter to restore.
- std::optional<InitFnRef> OldInitFn;
};
} // namespace interp
diff --git a/clang/lib/AST/Interp/ByteCodeExprGen.h b/clang/lib/AST/Interp/ByteCodeExprGen.h
index 89782bd87c32..c7fcc59e5a60 100644
--- a/clang/lib/AST/Interp/ByteCodeExprGen.h
+++ b/clang/lib/AST/Interp/ByteCodeExprGen.h
@@ -44,9 +44,6 @@ class ByteCodeExprGen : public ConstStmtVisitor<ByteCodeExprGen<Emitter>, bool>,
using LabelTy = typename Emitter::LabelTy;
using AddrTy = typename Emitter::AddrTy;
- // Reference to a function generating the pointer of an initialized object.s
- using InitFnRef = std::function<bool()>;
-
/// Current compilation context.
Context &Ctx;
/// Program to link to.
@@ -221,12 +218,6 @@ class ByteCodeExprGen : public ConstStmtVisitor<ByteCodeExprGen<Emitter>, bool>,
/// Emits an integer constant.
template <typename T> bool emitConst(T Value, const Expr *E);
- /// Emits the initialized pointer.
- bool emitInitFn() {
- assert(InitFn && "missing initializer");
- return (*InitFn)();
- }
-
/// Returns the CXXRecordDecl for the type of the given expression,
/// or nullptr if no such decl exists.
const CXXRecordDecl *getRecordDecl(const Expr *E) const {
@@ -257,9 +248,6 @@ class ByteCodeExprGen : public ConstStmtVisitor<ByteCodeExprGen<Emitter>, bool>,
/// Flag indicating if return value is to be discarded.
bool DiscardResult = false;
-
- /// Expression being initialized.
- std::optional<InitFnRef> InitFn = {};
};
extern template class ByteCodeExprGen<ByteCodeEmitter>;
More information about the cfe-commits
mailing list