This patch removes the comments grouping header includes. They were added after running IWYU over the LLDB codebase. However they add little value, are often outdates and burdensome to maintain. llvm-svn: 346626
87 lines
3.1 KiB
C++
87 lines
3.1 KiB
C++
//===-- ClangPersistentVariables.h ------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef liblldb_ClangPersistentVariables_h_
|
|
#define liblldb_ClangPersistentVariables_h_
|
|
|
|
#include "llvm/ADT/DenseMap.h"
|
|
|
|
#include "ClangExpressionVariable.h"
|
|
#include "ClangModulesDeclVendor.h"
|
|
|
|
#include "lldb/Expression/ExpressionVariable.h"
|
|
|
|
namespace lldb_private {
|
|
|
|
//----------------------------------------------------------------------
|
|
/// @class ClangPersistentVariables ClangPersistentVariables.h
|
|
/// "lldb/Expression/ClangPersistentVariables.h" Manages persistent values
|
|
/// that need to be preserved between expression invocations.
|
|
///
|
|
/// A list of variables that can be accessed and updated by any expression. See
|
|
/// ClangPersistentVariable for more discussion. Also provides an increasing,
|
|
/// 0-based counter for naming result variables.
|
|
//----------------------------------------------------------------------
|
|
class ClangPersistentVariables : public PersistentExpressionState {
|
|
public:
|
|
ClangPersistentVariables();
|
|
|
|
~ClangPersistentVariables() override = default;
|
|
|
|
//------------------------------------------------------------------
|
|
// llvm casting support
|
|
//------------------------------------------------------------------
|
|
static bool classof(const PersistentExpressionState *pv) {
|
|
return pv->getKind() == PersistentExpressionState::eKindClang;
|
|
}
|
|
|
|
lldb::ExpressionVariableSP
|
|
CreatePersistentVariable(const lldb::ValueObjectSP &valobj_sp) override;
|
|
|
|
lldb::ExpressionVariableSP CreatePersistentVariable(
|
|
ExecutionContextScope *exe_scope, const ConstString &name,
|
|
const CompilerType &compiler_type, lldb::ByteOrder byte_order,
|
|
uint32_t addr_byte_size) override;
|
|
|
|
void RemovePersistentVariable(lldb::ExpressionVariableSP variable) override;
|
|
llvm::StringRef
|
|
GetPersistentVariablePrefix(bool is_error) const override {
|
|
return "$";
|
|
}
|
|
|
|
void RegisterPersistentDecl(const ConstString &name, clang::NamedDecl *decl);
|
|
|
|
clang::NamedDecl *GetPersistentDecl(const ConstString &name);
|
|
|
|
void AddHandLoadedClangModule(ClangModulesDeclVendor::ModuleID module) {
|
|
m_hand_loaded_clang_modules.push_back(module);
|
|
}
|
|
|
|
const ClangModulesDeclVendor::ModuleVector &GetHandLoadedClangModules() {
|
|
return m_hand_loaded_clang_modules;
|
|
}
|
|
|
|
private:
|
|
uint32_t m_next_persistent_variable_id; ///< The counter used by
|
|
///GetNextResultName().
|
|
|
|
typedef llvm::DenseMap<const char *, clang::NamedDecl *> PersistentDeclMap;
|
|
PersistentDeclMap
|
|
m_persistent_decls; ///< Persistent entities declared by the user.
|
|
|
|
ClangModulesDeclVendor::ModuleVector
|
|
m_hand_loaded_clang_modules; ///< These are Clang modules we hand-loaded;
|
|
///these are the highest-
|
|
///< priority source for macros.
|
|
};
|
|
|
|
} // namespace lldb_private
|
|
|
|
#endif // liblldb_ClangPersistentVariables_h_
|