summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Interp/InterpState.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/AST/Interp/InterpState.h')
-rw-r--r--clang/lib/AST/Interp/InterpState.h112
1 files changed, 0 insertions, 112 deletions
diff --git a/clang/lib/AST/Interp/InterpState.h b/clang/lib/AST/Interp/InterpState.h
deleted file mode 100644
index fe4042ac207..00000000000
--- a/clang/lib/AST/Interp/InterpState.h
+++ /dev/null
@@ -1,112 +0,0 @@
-//===--- InterpState.h - Interpreter state for the constexpr VM -*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// Definition of the interpreter state and entry point.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_AST_INTERP_INTERPSTATE_H
-#define LLVM_CLANG_AST_INTERP_INTERPSTATE_H
-
-#include "Context.h"
-#include "Function.h"
-#include "InterpStack.h"
-#include "State.h"
-#include "clang/AST/APValue.h"
-#include "clang/AST/ASTDiagnostic.h"
-#include "clang/AST/Expr.h"
-#include "clang/Basic/OptionalDiagnostic.h"
-
-namespace clang {
-namespace interp {
-class Context;
-class Function;
-class InterpStack;
-class InterpFrame;
-class SourceMapper;
-
-/// Interpreter context.
-class InterpState final : public State, public SourceMapper {
-public:
- InterpState(State &Parent, Program &P, InterpStack &Stk, Context &Ctx,
- SourceMapper *M = nullptr);
-
- ~InterpState();
-
- // Stack frame accessors.
- Frame *getSplitFrame() { return Parent.getCurrentFrame(); }
- Frame *getCurrentFrame() override;
- unsigned getCallStackDepth() override { return CallStackDepth; }
- const Frame *getBottomFrame() const override {
- return Parent.getBottomFrame();
- }
-
- // Acces objects from the walker context.
- Expr::EvalStatus &getEvalStatus() const override {
- return Parent.getEvalStatus();
- }
- ASTContext &getCtx() const override { return Parent.getCtx(); }
-
- // Forward status checks and updates to the walker.
- bool checkingForOverflow() const override {
- return Parent.checkingForOverflow();
- }
- bool keepEvaluatingAfterFailure() const override {
- return Parent.keepEvaluatingAfterFailure();
- }
- bool checkingPotentialConstantExpression() const override {
- return Parent.checkingPotentialConstantExpression();
- }
- bool noteUndefinedBehavior() override {
- return Parent.noteUndefinedBehavior();
- }
- bool hasActiveDiagnostic() override { return Parent.hasActiveDiagnostic(); }
- void setActiveDiagnostic(bool Flag) override {
- Parent.setActiveDiagnostic(Flag);
- }
- void setFoldFailureDiagnostic(bool Flag) override {
- Parent.setFoldFailureDiagnostic(Flag);
- }
- bool hasPriorDiagnostic() override { return Parent.hasPriorDiagnostic(); }
-
- /// Reports overflow and return true if evaluation should continue.
- bool reportOverflow(const Expr *E, const llvm::APSInt &Value);
-
- /// Deallocates a pointer.
- void deallocate(Block *B);
-
- /// Delegates source mapping to the mapper.
- SourceInfo getSource(Function *F, CodePtr PC) const override {
- return M ? M->getSource(F, PC) : F->getSource(PC);
- }
-
-private:
- /// AST Walker state.
- State &Parent;
- /// Dead block chain.
- DeadBlock *DeadBlocks = nullptr;
- /// Reference to the offset-source mapping.
- SourceMapper *M;
-
-public:
- /// Reference to the module containing all bytecode.
- Program &P;
- /// Temporary stack.
- InterpStack &Stk;
- /// Interpreter Context.
- Context &Ctx;
- /// The current frame.
- InterpFrame *Current = nullptr;
- /// Call stack depth.
- unsigned CallStackDepth;
-};
-
-} // namespace interp
-} // namespace clang
-
-#endif
OpenPOWER on IntegriCloud