Path: blob/main/contrib/llvm-project/clang/lib/AST/Interp/Frame.h
35292 views
//===--- Frame.h - Call frame for the VM and AST Walker ---------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// Defines the base class of interpreter and evaluator stack frames.9//10//===----------------------------------------------------------------------===//1112#ifndef LLVM_CLANG_AST_INTERP_FRAME_H13#define LLVM_CLANG_AST_INTERP_FRAME_H1415#include "clang/Basic/SourceLocation.h"16#include "llvm/Support/raw_ostream.h"1718namespace clang {19class FunctionDecl;2021namespace interp {2223/// Base class for stack frames, shared between VM and walker.24class Frame {25public:26virtual ~Frame();2728/// Generates a human-readable description of the call site.29virtual void describe(llvm::raw_ostream &OS) const = 0;3031/// Returns a pointer to the caller frame.32virtual Frame *getCaller() const = 0;3334/// Returns the location of the call site.35virtual SourceRange getCallRange() const = 0;3637/// Returns the called function's declaration.38virtual const FunctionDecl *getCallee() const = 0;39};4041} // namespace interp42} // namespace clang4344#endif454647