summaryrefslogtreecommitdiffstats
path: root/lldb/source/Symbol/OCamlASTContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Symbol/OCamlASTContext.cpp')
-rw-r--r--lldb/source/Symbol/OCamlASTContext.cpp1018
1 files changed, 446 insertions, 572 deletions
diff --git a/lldb/source/Symbol/OCamlASTContext.cpp b/lldb/source/Symbol/OCamlASTContext.cpp
index 1f2f57a2af9..8176fa18fb5 100644
--- a/lldb/source/Symbol/OCamlASTContext.cpp
+++ b/lldb/source/Symbol/OCamlASTContext.cpp
@@ -1,4 +1,5 @@
-//===-- OCamlASTContext.cpp ----------------------------------------*- C++ -*-===//
+//===-- OCamlASTContext.cpp ----------------------------------------*- C++
+//-*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -7,6 +8,7 @@
//
//===----------------------------------------------------------------------===//
+#include "lldb/Symbol/OCamlASTContext.h"
#include "lldb/Core/Log.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/PluginManager.h"
@@ -14,7 +16,6 @@
#include "lldb/Core/ValueObject.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolFile.h"
-#include "lldb/Symbol/OCamlASTContext.h"
#include "lldb/Symbol/Type.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Target/Target.h"
@@ -24,471 +25,371 @@
using namespace lldb;
using namespace lldb_private;
-namespace lldb_private
-{
- class OCamlASTContext::OCamlType
- {
- public:
- enum LLVMCastKind
- {
- eKindPrimitive,
- eKindObject,
- eKindReference,
- eKindArray,
- kNumKinds
- };
+namespace lldb_private {
+class OCamlASTContext::OCamlType {
+public:
+ enum LLVMCastKind {
+ eKindPrimitive,
+ eKindObject,
+ eKindReference,
+ eKindArray,
+ kNumKinds
+ };
- OCamlType(LLVMCastKind kind) : m_kind(kind) {}
+ OCamlType(LLVMCastKind kind) : m_kind(kind) {}
- virtual ~OCamlType() = default;
+ virtual ~OCamlType() = default;
- virtual ConstString
- GetName() = 0;
+ virtual ConstString GetName() = 0;
- virtual void
- Dump(Stream *s) = 0;
+ virtual void Dump(Stream *s) = 0;
- virtual bool
- IsCompleteType() = 0;
+ virtual bool IsCompleteType() = 0;
- LLVMCastKind
- getKind() const
- {
- return m_kind;
- }
+ LLVMCastKind getKind() const { return m_kind; }
- private:
- LLVMCastKind m_kind;
- };
+private:
+ LLVMCastKind m_kind;
+};
} // end of namespace lldb_private
-namespace
-{
-
- class OCamlPrimitiveType : public OCamlASTContext::OCamlType
- {
- public:
- enum TypeKind
- {
- eTypeInt,
- };
-
- OCamlPrimitiveType(TypeKind type_kind, uint32_t byte_size) : OCamlType(OCamlType::eKindPrimitive), m_type_kind(type_kind), m_type(ConstString()), m_byte_size(byte_size) {}
-
- OCamlPrimitiveType(TypeKind type_kind, ConstString s, uint32_t byte_size) : OCamlType(OCamlType::eKindPrimitive), m_type_kind(type_kind), m_type(s), m_byte_size(byte_size) {}
-
- ConstString
- GetName() override
- {
- switch (m_type_kind)
- {
- case eTypeInt:
- return m_type;
- }
- return ConstString();
- }
-
- TypeKind
- GetTypeKind()
- {
- return m_type_kind;
- }
-
- void
- Dump(Stream *s) override
- {
- s->Printf("%s\n", GetName().GetCString());
- }
-
- bool
- IsCompleteType() override
- {
- return true;
- }
-
- static bool
- classof(const OCamlType *ot)
- {
- return ot->getKind() == OCamlType::eKindPrimitive;
- }
-
- uint64_t
- GetByteSize() const
- {
- return m_byte_size;
- }
-
- private:
- const TypeKind m_type_kind;
- const ConstString m_type;
- uint64_t m_byte_size;
- };
+namespace {
+
+class OCamlPrimitiveType : public OCamlASTContext::OCamlType {
+public:
+ enum TypeKind {
+ eTypeInt,
+ };
+
+ OCamlPrimitiveType(TypeKind type_kind, uint32_t byte_size)
+ : OCamlType(OCamlType::eKindPrimitive), m_type_kind(type_kind),
+ m_type(ConstString()), m_byte_size(byte_size) {}
+
+ OCamlPrimitiveType(TypeKind type_kind, ConstString s, uint32_t byte_size)
+ : OCamlType(OCamlType::eKindPrimitive), m_type_kind(type_kind), m_type(s),
+ m_byte_size(byte_size) {}
+
+ ConstString GetName() override {
+ switch (m_type_kind) {
+ case eTypeInt:
+ return m_type;
+ }
+ return ConstString();
+ }
+
+ TypeKind GetTypeKind() { return m_type_kind; }
+
+ void Dump(Stream *s) override { s->Printf("%s\n", GetName().GetCString()); }
+
+ bool IsCompleteType() override { return true; }
+
+ static bool classof(const OCamlType *ot) {
+ return ot->getKind() == OCamlType::eKindPrimitive;
+ }
+
+ uint64_t GetByteSize() const { return m_byte_size; }
+
+private:
+ const TypeKind m_type_kind;
+ const ConstString m_type;
+ uint64_t m_byte_size;
+};
}
OCamlASTContext::OCamlASTContext()
- : TypeSystem(eKindOCaml),
- m_pointer_byte_size(0)
-{
-}
+ : TypeSystem(eKindOCaml), m_pointer_byte_size(0) {}
-OCamlASTContext::~OCamlASTContext()
-{
-}
+OCamlASTContext::~OCamlASTContext() {}
-ConstString
-OCamlASTContext::GetPluginNameStatic()
-{
- return ConstString("ocaml");
+ConstString OCamlASTContext::GetPluginNameStatic() {
+ return ConstString("ocaml");
}
-ConstString
-OCamlASTContext::GetPluginName()
-{
- return OCamlASTContext::GetPluginNameStatic();
+ConstString OCamlASTContext::GetPluginName() {
+ return OCamlASTContext::GetPluginNameStatic();
}
-uint32_t
-OCamlASTContext::GetPluginVersion()
-{
- return 1;
-}
-
-lldb::TypeSystemSP
-OCamlASTContext::CreateInstance (lldb::LanguageType language, Module *module, Target *target)
-{
- Log *log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_LANGUAGE));
-
- if (language == lldb::eLanguageTypeOCaml)
- {
- std::shared_ptr<OCamlASTContext> ocaml_ast_sp;
- ArchSpec arch;
-
- if (module)
- {
- arch = module->GetArchitecture();
-
- ObjectFile *objfile = module->GetObjectFile();
- ArchSpec object_arch;
-
- if (!objfile || !objfile->GetArchitecture(object_arch))
- return lldb::TypeSystemSP();
-
- ocaml_ast_sp = std::shared_ptr<OCamlASTContext>(new OCamlASTContext);
-
- if (log) {
- log->Printf ("((Module*)%p) [%s]->GetOCamlASTContext() = %p",
- (void *)module,
- module->GetFileSpec().GetFilename().AsCString("<anonymous>"),
- (void *)ocaml_ast_sp.get());
- }
-
- } else if (target) {
- arch = target->GetArchitecture();
- ocaml_ast_sp = std::shared_ptr<OCamlASTContextForExpr>(new OCamlASTContextForExpr(target->shared_from_this()));
-
- if (log)
- {
- log->Printf ("((Target*)%p)->GetOCamlASTContext() = %p",
- (void *)target,
- (void *)ocaml_ast_sp.get());
- }
- }
-
- if (arch.IsValid()) {
- ocaml_ast_sp->SetAddressByteSize(arch.GetAddressByteSize());
- return ocaml_ast_sp;
- }
+uint32_t OCamlASTContext::GetPluginVersion() { return 1; }
+
+lldb::TypeSystemSP OCamlASTContext::CreateInstance(lldb::LanguageType language,
+ Module *module,
+ Target *target) {
+ Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_LANGUAGE));
+
+ if (language == lldb::eLanguageTypeOCaml) {
+ std::shared_ptr<OCamlASTContext> ocaml_ast_sp;
+ ArchSpec arch;
+
+ if (module) {
+ arch = module->GetArchitecture();
+
+ ObjectFile *objfile = module->GetObjectFile();
+ ArchSpec object_arch;
+
+ if (!objfile || !objfile->GetArchitecture(object_arch))
+ return lldb::TypeSystemSP();
+
+ ocaml_ast_sp = std::shared_ptr<OCamlASTContext>(new OCamlASTContext);
+
+ if (log) {
+ log->Printf(
+ "((Module*)%p) [%s]->GetOCamlASTContext() = %p", (void *)module,
+ module->GetFileSpec().GetFilename().AsCString("<anonymous>"),
+ (void *)ocaml_ast_sp.get());
+ }
+
+ } else if (target) {
+ arch = target->GetArchitecture();
+ ocaml_ast_sp = std::shared_ptr<OCamlASTContextForExpr>(
+ new OCamlASTContextForExpr(target->shared_from_this()));
+
+ if (log) {
+ log->Printf("((Target*)%p)->GetOCamlASTContext() = %p", (void *)target,
+ (void *)ocaml_ast_sp.get());
+ }
}
- return lldb::TypeSystemSP();
+ if (arch.IsValid()) {
+ ocaml_ast_sp->SetAddressByteSize(arch.GetAddressByteSize());
+ return ocaml_ast_sp;
+ }
+ }
+
+ return lldb::TypeSystemSP();
}
-void
-OCamlASTContext::EnumerateSupportedLanguages
-(std::set<lldb::LanguageType> &languages_for_types,
- std::set<lldb::LanguageType> &languages_for_expressions)
-{
- static std::vector<lldb::LanguageType> s_supported_languages_for_types({lldb::eLanguageTypeOCaml});
- static std::vector<lldb::LanguageType> s_supported_languages_for_expressions({});
+void OCamlASTContext::EnumerateSupportedLanguages(
+ std::set<lldb::LanguageType> &languages_for_types,
+ std::set<lldb::LanguageType> &languages_for_expressions) {
+ static std::vector<lldb::LanguageType> s_supported_languages_for_types(
+ {lldb::eLanguageTypeOCaml});
+ static std::vector<lldb::LanguageType> s_supported_languages_for_expressions(
+ {});
- languages_for_types.insert(s_supported_languages_for_types.begin(), s_supported_languages_for_types.end());
- languages_for_expressions.insert(s_supported_languages_for_expressions.begin(), s_supported_languages_for_expressions.end());
+ languages_for_types.insert(s_supported_languages_for_types.begin(),
+ s_supported_languages_for_types.end());
+ languages_for_expressions.insert(
+ s_supported_languages_for_expressions.begin(),
+ s_supported_languages_for_expressions.end());
}
-void
-OCamlASTContext::Initialize()
-{
- PluginManager::RegisterPlugin (GetPluginNameStatic(),
- "OCaml AST context plug-in",
- CreateInstance,
- EnumerateSupportedLanguages);
+void OCamlASTContext::Initialize() {
+ PluginManager::RegisterPlugin(GetPluginNameStatic(),
+ "OCaml AST context plug-in", CreateInstance,
+ EnumerateSupportedLanguages);
}
-void
-OCamlASTContext::Terminate()
-{
- PluginManager::UnregisterPlugin (CreateInstance);
+void OCamlASTContext::Terminate() {
+ PluginManager::UnregisterPlugin(CreateInstance);
}
-DWARFASTParser *
-OCamlASTContext::GetDWARFParser()
-{
- if (!m_dwarf_ast_parser_ap) {
- m_dwarf_ast_parser_ap.reset(new DWARFASTParserOCaml(*this));
- }
+DWARFASTParser *OCamlASTContext::GetDWARFParser() {
+ if (!m_dwarf_ast_parser_ap) {
+ m_dwarf_ast_parser_ap.reset(new DWARFASTParserOCaml(*this));
+ }
- return m_dwarf_ast_parser_ap.get();
+ return m_dwarf_ast_parser_ap.get();
}
-bool
-OCamlASTContext::IsArrayType(lldb::opaque_compiler_type_t type,
- CompilerType *element_type, uint64_t *size,
- bool *is_incomplete)
-{
- return false;
+bool OCamlASTContext::IsArrayType(lldb::opaque_compiler_type_t type,
+ CompilerType *element_type, uint64_t *size,
+ bool *is_incomplete) {
+ return false;
}
-bool
-OCamlASTContext::IsVectorType(lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size)
-{
- return false;
+bool OCamlASTContext::IsVectorType(lldb::opaque_compiler_type_t type,
+ CompilerType *element_type, uint64_t *size) {
+ return false;
}
-bool
-OCamlASTContext::IsAggregateType(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsAggregateType(lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::IsBeingDefined(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsBeingDefined(lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::IsCharType(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsCharType(lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::IsCompleteType(lldb::opaque_compiler_type_t type)
-{
- return static_cast<OCamlPrimitiveType *>(type)->IsCompleteType();
+bool OCamlASTContext::IsCompleteType(lldb::opaque_compiler_type_t type) {
+ return static_cast<OCamlPrimitiveType *>(type)->IsCompleteType();
}
-bool
-OCamlASTContext::IsConst(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsConst(lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::IsCStringType(lldb::opaque_compiler_type_t type, uint32_t &length)
-{
- return false;
+bool OCamlASTContext::IsCStringType(lldb::opaque_compiler_type_t type,
+ uint32_t &length) {
+ return false;
}
-bool
-OCamlASTContext::IsDefined(lldb::opaque_compiler_type_t type)
-{
- return type != nullptr;
+bool OCamlASTContext::IsDefined(lldb::opaque_compiler_type_t type) {
+ return type != nullptr;
}
-bool
-OCamlASTContext::IsFloatingPointType(lldb::opaque_compiler_type_t type, uint32_t &count, bool &is_complex)
-{
- return false;
+bool OCamlASTContext::IsFloatingPointType(lldb::opaque_compiler_type_t type,
+ uint32_t &count, bool &is_complex) {
+ return false;
}
-bool
-OCamlASTContext::IsFunctionType(lldb::opaque_compiler_type_t type, bool *is_variadic_ptr)
-{
- return false;
+bool OCamlASTContext::IsFunctionType(lldb::opaque_compiler_type_t type,
+ bool *is_variadic_ptr) {
+ return false;
}
uint32_t
-OCamlASTContext::IsHomogeneousAggregate(lldb::opaque_compiler_type_t type, CompilerType *base_type_ptr)
-{
- return false;
+OCamlASTContext::IsHomogeneousAggregate(lldb::opaque_compiler_type_t type,
+ CompilerType *base_type_ptr) {
+ return false;
}
-size_t
-OCamlASTContext::GetNumberOfFunctionArguments(lldb::opaque_compiler_type_t type)
-{
- return 0;
+size_t OCamlASTContext::GetNumberOfFunctionArguments(
+ lldb::opaque_compiler_type_t type) {
+ return 0;
}
CompilerType
-OCamlASTContext::GetFunctionArgumentAtIndex(lldb::opaque_compiler_type_t type, const size_t index)
-{
- return CompilerType();
+OCamlASTContext::GetFunctionArgumentAtIndex(lldb::opaque_compiler_type_t type,
+ const size_t index) {
+ return CompilerType();
}
-bool
-OCamlASTContext::IsFunctionPointerType(lldb::opaque_compiler_type_t type)
-{
- return IsFunctionType(type);
+bool OCamlASTContext::IsFunctionPointerType(lldb::opaque_compiler_type_t type) {
+ return IsFunctionType(type);
}
-bool
-OCamlASTContext::IsBlockPointerType (lldb::opaque_compiler_type_t type, CompilerType *function_pointer_type_ptr)
-{
- return false;
+bool OCamlASTContext::IsBlockPointerType(
+ lldb::opaque_compiler_type_t type,
+ CompilerType *function_pointer_type_ptr) {
+ return false;
}
-bool
-OCamlASTContext::IsIntegerType(lldb::opaque_compiler_type_t type, bool &is_signed)
-{
- if (OCamlPrimitiveType *ptype = llvm::dyn_cast<OCamlPrimitiveType>(static_cast<OCamlType *>(type)))
- {
- switch (ptype->GetTypeKind())
- {
- case OCamlPrimitiveType::eTypeInt:
- is_signed = true;
- return true;
- }
+bool OCamlASTContext::IsIntegerType(lldb::opaque_compiler_type_t type,
+ bool &is_signed) {
+ if (OCamlPrimitiveType *ptype =
+ llvm::dyn_cast<OCamlPrimitiveType>(static_cast<OCamlType *>(type))) {
+ switch (ptype->GetTypeKind()) {
+ case OCamlPrimitiveType::eTypeInt:
+ is_signed = true;
+ return true;
}
+ }
- is_signed = false;
- return false;
+ is_signed = false;
+ return false;
}
-bool
-OCamlASTContext::IsPolymorphicClass(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsPolymorphicClass(lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::IsPossibleDynamicType(lldb::opaque_compiler_type_t type,
- CompilerType *target_type,
- bool check_cplusplus, bool check_objc)
-{
- return false;
+bool OCamlASTContext::IsPossibleDynamicType(lldb::opaque_compiler_type_t type,
+ CompilerType *target_type,
+ bool check_cplusplus,
+ bool check_objc) {
+ return false;
}
-bool
-OCamlASTContext::IsRuntimeGeneratedType(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsRuntimeGeneratedType(
+ lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::IsPointerType(lldb::opaque_compiler_type_t type, CompilerType *pointee_type)
-{
- if (pointee_type)
- pointee_type->Clear();
- return false;
+bool OCamlASTContext::IsPointerType(lldb::opaque_compiler_type_t type,
+ CompilerType *pointee_type) {
+ if (pointee_type)
+ pointee_type->Clear();
+ return false;
}
-bool
-OCamlASTContext::IsPointerOrReferenceType(lldb::opaque_compiler_type_t type, CompilerType *pointee_type)
-{
- return IsPointerType(type, pointee_type);
+bool OCamlASTContext::IsPointerOrReferenceType(
+ lldb::opaque_compiler_type_t type, CompilerType *pointee_type) {
+ return IsPointerType(type, pointee_type);
}
-bool
-OCamlASTContext::IsReferenceType(lldb::opaque_compiler_type_t type, CompilerType *pointee_type, bool *is_rvalue)
-{
- return false;
+bool OCamlASTContext::IsReferenceType(lldb::opaque_compiler_type_t type,
+ CompilerType *pointee_type,
+ bool *is_rvalue) {
+ return false;
}
-bool
-OCamlASTContext::IsScalarType(lldb::opaque_compiler_type_t type)
-{
- return llvm::isa<OCamlPrimitiveType>(static_cast<OCamlType *>(type));
+bool OCamlASTContext::IsScalarType(lldb::opaque_compiler_type_t type) {
+ return llvm::isa<OCamlPrimitiveType>(static_cast<OCamlType *>(type));
}
-bool
-OCamlASTContext::IsTypedefType(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsTypedefType(lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::IsVoidType(lldb::opaque_compiler_type_t type)
-{
- return false;
+bool OCamlASTContext::IsVoidType(lldb::opaque_compiler_type_t type) {
+ return false;
}
-bool
-OCamlASTContext::SupportsLanguage (lldb::LanguageType language)
-{
- return language == lldb::eLanguageTypeOCaml;
+bool OCamlASTContext::SupportsLanguage(lldb::LanguageType language) {
+ return language == lldb::eLanguageTypeOCaml;
}
-bool
-OCamlASTContext::GetCompleteType(lldb::opaque_compiler_type_t type)
-{
- if (IsCompleteType(type))
- return true;
+bool OCamlASTContext::GetCompleteType(lldb::opaque_compiler_type_t type) {
+ if (IsCompleteType(type))
+ return true;
- return false;
+ return false;
}
-uint32_t
-OCamlASTContext::GetPointerByteSize()
-{
- return m_pointer_byte_size;
-}
+uint32_t OCamlASTContext::GetPointerByteSize() { return m_pointer_byte_size; }
-ConstString
-OCamlASTContext::GetTypeName(lldb::opaque_compiler_type_t type)
-{
- if (type)
- return static_cast<OCamlPrimitiveType *>(type)->GetName();
+ConstString OCamlASTContext::GetTypeName(lldb::opaque_compiler_type_t type) {
+ if (type)
+ return static_cast<OCamlPrimitiveType *>(type)->GetName();
- return ConstString();
+ return ConstString();
}
uint32_t
-OCamlASTContext::GetTypeInfo(lldb::opaque_compiler_type_t type, CompilerType *pointee_or_element_compiler_type)
-{
- if (pointee_or_element_compiler_type)
- pointee_or_element_compiler_type->Clear();
- if (!type)
- return 0;
-
- if (OCamlPrimitiveType *ptype = llvm::dyn_cast<OCamlPrimitiveType>(static_cast<OCamlType *>(type)))
- {
- switch (ptype->GetTypeKind())
- {
- case OCamlPrimitiveType::eTypeInt:
- return eTypeHasValue | eTypeIsBuiltIn | eTypeIsScalar | eTypeIsInteger | eTypeIsSigned;
- }
+OCamlASTContext::GetTypeInfo(lldb::opaque_compiler_type_t type,
+ CompilerType *pointee_or_element_compiler_type) {
+ if (pointee_or_element_compiler_type)
+ pointee_or_element_compiler_type->Clear();
+ if (!type)
+ return 0;
+
+ if (OCamlPrimitiveType *ptype =
+ llvm::dyn_cast<OCamlPrimitiveType>(static_cast<OCamlType *>(type))) {
+ switch (ptype->GetTypeKind()) {
+ case OCamlPrimitiveType::eTypeInt:
+ return eTypeHasValue | eTypeIsBuiltIn | eTypeIsScalar | eTypeIsInteger |
+ eTypeIsSigned;
}
+ }
- return 0;
+ return 0;
}
lldb::TypeClass
-OCamlASTContext::GetTypeClass(lldb::opaque_compiler_type_t type)
-{
- if (llvm::isa<OCamlPrimitiveType>(static_cast<OCamlType *>(type)))
- return eTypeClassBuiltin;
+OCamlASTContext::GetTypeClass(lldb::opaque_compiler_type_t type) {
+ if (llvm::isa<OCamlPrimitiveType>(static_cast<OCamlType *>(type)))
+ return eTypeClassBuiltin;
- return lldb::eTypeClassInvalid;
+ return lldb::eTypeClassInvalid;
}
lldb::BasicType
-OCamlASTContext::GetBasicTypeEnumeration(lldb::opaque_compiler_type_t type)
-{
- return lldb::eBasicTypeInvalid;
+OCamlASTContext::GetBasicTypeEnumeration(lldb::opaque_compiler_type_t type) {
+ return lldb::eBasicTypeInvalid;
}
lldb::LanguageType
-OCamlASTContext::GetMinimumLanguage(lldb::opaque_compiler_type_t type)
-{
- return lldb::eLanguageTypeOCaml;
+OCamlASTContext::GetMinimumLanguage(lldb::opaque_compiler_type_t type) {
+ return lldb::eLanguageTypeOCaml;
}
-unsigned
-OCamlASTContext::GetTypeQualifiers(lldb::opaque_compiler_type_t type)
-{
- return 0;
+unsigned OCamlASTContext::GetTypeQualifiers(lldb::opaque_compiler_type_t type) {
+ return 0;
}
//----------------------------------------------------------------------
@@ -496,300 +397,273 @@ OCamlASTContext::GetTypeQualifiers(lldb::opaque_compiler_type_t type)
//----------------------------------------------------------------------
CompilerType
-OCamlASTContext::GetArrayElementType(lldb::opaque_compiler_type_t type, uint64_t *stride)
-{
- return CompilerType();
+OCamlASTContext::GetArrayElementType(lldb::opaque_compiler_type_t type,
+ uint64_t *stride) {
+ return CompilerType();
}
CompilerType
-OCamlASTContext::GetCanonicalType(lldb::opaque_compiler_type_t type)
-{
- return CompilerType(this, type);
+OCamlASTContext::GetCanonicalType(lldb::opaque_compiler_type_t type) {
+ return CompilerType(this, type);
}
CompilerType
-OCamlASTContext::GetFullyUnqualifiedType(lldb::opaque_compiler_type_t type)
-{
- return CompilerType(this, type);
+OCamlASTContext::GetFullyUnqualifiedType(lldb::opaque_compiler_type_t type) {
+ return CompilerType(this, type);
}
-int
-OCamlASTContext::GetFunctionArgumentCount(lldb::opaque_compiler_type_t type)
-{
- return GetNumberOfFunctionArguments(type);
+int OCamlASTContext::GetFunctionArgumentCount(
+ lldb::opaque_compiler_type_t type) {
+ return GetNumberOfFunctionArguments(type);
}
-CompilerType
-OCamlASTContext::GetFunctionArgumentTypeAtIndex(lldb::opaque_compiler_type_t type, size_t idx)
-{
- return GetFunctionArgumentAtIndex(type, idx);
+CompilerType OCamlASTContext::GetFunctionArgumentTypeAtIndex(
+ lldb::opaque_compiler_type_t type, size_t idx) {
+ return GetFunctionArgumentAtIndex(type, idx);
}
CompilerType
-OCamlASTContext::GetFunctionReturnType(lldb::opaque_compiler_type_t type)
-{
- return CompilerType();
+OCamlASTContext::GetFunctionReturnType(lldb::opaque_compiler_type_t type) {
+ return CompilerType();
}
size_t
-OCamlASTContext::GetNumMemberFunctions(lldb::opaque_compiler_type_t type)
-{
- return 0;
+OCamlASTContext::GetNumMemberFunctions(lldb::opaque_compiler_type_t type) {
+ return 0;
}
TypeMemberFunctionImpl
-OCamlASTContext::GetMemberFunctionAtIndex(lldb::opaque_compiler_type_t type, size_t idx)
-{
- return TypeMemberFunctionImpl();
+OCamlASTContext::GetMemberFunctionAtIndex(lldb::opaque_compiler_type_t type,
+ size_t idx) {
+ return TypeMemberFunctionImpl();
}
CompilerType
-OCamlASTContext::GetNonReferenceType(lldb::opaque_compiler_type_t type)
-{
- return CompilerType(this, type);
+OCamlASTContext::GetNonReferenceType(lldb::opaque_compiler_type_t type) {
+ return CompilerType(this, type);
}
CompilerType
-OCamlASTContext::GetPointeeType(lldb::opaque_compiler_type_t type)
-{
- return CompilerType();
+OCamlASTContext::GetPointeeType(lldb::opaque_compiler_type_t type) {
+ return CompilerType();
}
CompilerType
-OCamlASTContext::GetPointerType(lldb::opaque_compiler_type_t type)
-{
- return CompilerType();
+OCamlASTContext::GetPointerType(lldb::opaque_compiler_type_t type) {
+ return CompilerType();
}
CompilerType
-OCamlASTContext::GetTypedefedType(lldb::opaque_compiler_type_t type)
-{
- return CompilerType();
+OCamlASTContext::GetTypedefedType(lldb::opaque_compiler_type_t type) {
+ return CompilerType();
}
-CompilerType
-OCamlASTContext::GetBasicTypeFromAST(lldb::BasicType basic_type)
-{
- return CompilerType();
+CompilerType OCamlASTContext::GetBasicTypeFromAST(lldb::BasicType basic_type) {
+ return CompilerType();
}
CompilerType
-OCamlASTContext::GetBuiltinTypeForEncodingAndBitSize (lldb::Encoding encoding,
- size_t bit_size)
-{
- return CompilerType();
-}
-
-uint64_t
-OCamlASTContext::GetBitSize(lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope)
-{
- if (OCamlPrimitiveType *ptype = llvm::dyn_cast<OCamlPrimitiveType>(static_cast<OCamlType *>(type)))
- {
- switch (ptype->GetTypeKind())
- {
- case OCamlPrimitiveType::eTypeInt:
- return ptype->GetByteSize() * 8;
- }
+OCamlASTContext::GetBuiltinTypeForEncodingAndBitSize(lldb::Encoding encoding,
+ size_t bit_size) {
+ return CompilerType();
+}
+
+uint64_t OCamlASTContext::GetBitSize(lldb::opaque_compiler_type_t type,
+ ExecutionContextScope *exe_scope) {
+ if (OCamlPrimitiveType *ptype =
+ llvm::dyn_cast<OCamlPrimitiveType>(static_cast<OCamlType *>(type))) {
+ switch (ptype->GetTypeKind()) {
+ case OCamlPrimitiveType::eTypeInt:
+ return ptype->GetByteSize() * 8;
}
- return 0;
+ }
+ return 0;
}
-lldb::Encoding
-OCamlASTContext::GetEncoding(lldb::opaque_compiler_type_t type, uint64_t &count)
-{
- count = 1;
- bool is_signed;
- if (IsIntegerType(type, is_signed))
- return is_signed ? lldb::eEncodingSint : lldb::eEncodingUint;
- bool is_complex;
- uint32_t complex_count;
- if (IsFloatingPointType(type, complex_count, is_complex))
- {
- count = complex_count;
- return lldb::eEncodingIEEE754;
- }
- if (IsPointerType(type))
- return lldb::eEncodingUint;
- return lldb::eEncodingInvalid;
+lldb::Encoding OCamlASTContext::GetEncoding(lldb::opaque_compiler_type_t type,
+ uint64_t &count) {
+ count = 1;
+ bool is_signed;
+ if (IsIntegerType(type, is_signed))
+ return is_signed ? lldb::eEncodingSint : lldb::eEncodingUint;
+ bool is_complex;
+ uint32_t complex_count;
+ if (IsFloatingPointType(type, complex_count, is_complex)) {
+ count = complex_count;
+ return lldb::eEncodingIEEE754;
+ }
+ if (IsPointerType(type))
+ return lldb::eEncodingUint;
+ return lldb::eEncodingInvalid;
}
-lldb::Format
-OCamlASTContext::GetFormat(lldb::opaque_compiler_type_t type)
-{
- if (!type)
- return lldb::eFormatDefault;
- return lldb::eFormatBytes;
+lldb::Format OCamlASTContext::GetFormat(lldb::opaque_compiler_type_t type) {
+ if (!type)
+ return lldb::eFormatDefault;
+ return lldb::eFormatBytes;
}
-size_t
-OCamlASTContext::GetTypeBitAlign(lldb::opaque_compiler_type_t type)
-{
- return 0;
+size_t OCamlASTContext::GetTypeBitAlign(lldb::opaque_compiler_type_t type) {
+ return 0;
}
-uint32_t
-OCamlASTContext::GetNumChildren(lldb::opaque_compiler_type_t type, bool omit_empty_base_classes)
-{
- if (!type || !GetCompleteType(type))
- return 0;
+uint32_t OCamlASTContext::GetNumChildren(lldb::opaque_compiler_type_t type,
+ bool omit_empty_base_classes) {
+ if (!type || !GetCompleteType(type))
+ return 0;
- return GetNumFields(type);
+ return GetNumFields(type);
}
-uint32_t
-OCamlASTContext::GetNumFields(lldb::opaque_compiler_type_t type)
-{
- if (!type || !GetCompleteType(type))
- return 0;
+uint32_t OCamlASTContext::GetNumFields(lldb::opaque_compiler_type_t type) {
+ if (!type || !GetCompleteType(type))
return 0;
-}
-
-CompilerType
-OCamlASTContext::GetFieldAtIndex(lldb::opaque_compiler_type_t type, size_t idx,
- std::string &name, uint64_t *bit_offset_ptr,
- uint32_t *bitfield_bit_size_ptr, bool *is_bitfield_ptr)
-{
- if (bit_offset_ptr)
- *bit_offset_ptr = 0;
- if (bitfield_bit_size_ptr)
- *bitfield_bit_size_ptr = 0;
- if (is_bitfield_ptr)
- *is_bitfield_ptr = false;
-
- if (!type || !GetCompleteType(type))
- return CompilerType();
-
+ return 0;
+}
+
+CompilerType OCamlASTContext::GetFieldAtIndex(lldb::opaque_compiler_type_t type,
+ size_t idx, std::string &name,
+ uint64_t *bit_offset_ptr,
+ uint32_t *bitfield_bit_size_ptr,
+ bool *is_bitfield_ptr) {
+ if (bit_offset_ptr)
+ *bit_offset_ptr = 0;
+ if (bitfield_bit_size_ptr)
+ *bitfield_bit_size_ptr = 0;
+ if (is_bitfield_ptr)
+ *is_bitfield_ptr = false;
+
+ if (!type || !GetCompleteType(type))
return CompilerType();
-}
-
-CompilerType
-OCamlASTContext::GetChildCompilerTypeAtIndex(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, size_t idx,
- bool transparent_pointers, bool omit_empty_base_classes,
- bool ignore_array_bounds, std::string &child_name,
- uint32_t &child_byte_size, int32_t &child_byte_offset,
- uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset,
- bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj,
- uint64_t &language_flags)
-{
- child_name.clear();
- child_byte_size = 0;
- child_byte_offset = 0;
- child_bitfield_bit_size = 0;
- child_bitfield_bit_offset = 0;
- child_is_base_class = false;
- child_is_deref_of_parent = false;
- language_flags = 0;
-
- if (!type || !GetCompleteType(type))
- return CompilerType();
+ return CompilerType();
+}
+
+CompilerType OCamlASTContext::GetChildCompilerTypeAtIndex(
+ lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, size_t idx,
+ bool transparent_pointers, bool omit_empty_base_classes,
+ bool ignore_array_bounds, std::string &child_name,
+ uint32_t &child_byte_size, int32_t &child_byte_offset,
+ uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset,
+ bool &child_is_base_class, bool &child_is_deref_of_parent,
+ ValueObject *valobj, uint64_t &language_flags) {
+ child_name.clear();
+ child_byte_size = 0;
+ child_byte_offset = 0;
+ child_bitfield_bit_size = 0;
+ child_bitfield_bit_offset = 0;
+ child_is_base_class = false;
+ child_is_deref_of_parent = false;
+ language_flags = 0;
+
+ if (!type || !GetCompleteType(type))
return CompilerType();
+
+ return CompilerType();
}
uint32_t
-OCamlASTContext::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes)
-{
- if (!type || !GetCompleteType(type))
- return UINT_MAX;
-
+OCamlASTContext::GetIndexOfChildWithName(lldb::opaque_compiler_type_t type,
+ const char *name,
+ bool omit_empty_base_classes) {
+ if (!type || !GetCompleteType(type))
return UINT_MAX;
+
+ return UINT_MAX;
}
-size_t
-OCamlASTContext::GetIndexOfChildMemberWithName(lldb::opaque_compiler_type_t type, const char *name,
- bool omit_empty_base_classes, std::vector<uint32_t> &child_indexes)
-{
- uint32_t index = GetIndexOfChildWithName(type, name, omit_empty_base_classes);
- if (index == UINT_MAX)
- return 0;
- child_indexes.push_back(index);
- return 1;
+size_t OCamlASTContext::GetIndexOfChildMemberWithName(
+ lldb::opaque_compiler_type_t type, const char *name,
+ bool omit_empty_base_classes, std::vector<uint32_t> &child_indexes) {
+ uint32_t index = GetIndexOfChildWithName(type, name, omit_empty_base_classes);
+ if (index == UINT_MAX)
+ return 0;
+ child_indexes.push_back(index);
+ return 1;
}
size_t
-OCamlASTContext::ConvertStringToFloatValue(lldb::opaque_compiler_type_t type, const char *s, uint8_t *dst, size_t dst_size)
-{
- assert(false);
- return 0;
+OCamlASTContext::ConvertStringToFloatValue(lldb::opaque_compiler_type_t type,
+ const char *s, uint8_t *dst,
+ size_t dst_size) {
+ assert(false);
+ return 0;
}
//----------------------------------------------------------------------
// Dumping types
//----------------------------------------------------------------------
-void
-OCamlASTContext::DumpValue(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s, lldb::Format format,
- const DataExtractor &data, lldb::offset_t data_byte_offset, size_t data_byte_size,
- uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool show_types, bool show_summary,
- bool verbose, uint32_t depth)
-{
- if (!type) {
- s->Printf("no type\n");
- return;
- }
+void OCamlASTContext::DumpValue(
+ lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s,
+ lldb::Format format, const DataExtractor &data,
+ lldb::offset_t data_byte_offset, size_t data_byte_size,
+ uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool show_types,
+ bool show_summary, bool verbose, uint32_t depth) {
+ if (!type) {
+ s->Printf("no type\n");
+ return;
+ }
+
+ s->Printf("no value\n");
+
+ if (show_summary)
+ DumpSummary(type, exe_ctx, s, data, data_byte_offset, data_byte_size);
+}
+
+bool OCamlASTContext::DumpTypeValue(
+ lldb::opaque_compiler_type_t type, Stream *s, lldb::Format format,
+ const DataExtractor &data, lldb::offset_t byte_offset, size_t byte_size,
+ uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset,
+ ExecutionContextScope *exe_scope) {
+ if (!type) {
+ s->Printf("no type value\n");
+ return false;
+ }
- s->Printf("no value\n");
+ if (IsScalarType(type)) {
+ return data.Dump(s, byte_offset, format, byte_size, 1, UINT64_MAX,
+ LLDB_INVALID_ADDRESS, bitfield_bit_size,
+ bitfield_bit_offset, exe_scope);
+ }
- if (show_summary)
- DumpSummary (type, exe_ctx, s, data, data_byte_offset, data_byte_size);
+ return false;
}
-bool
-OCamlASTContext::DumpTypeValue(lldb::opaque_compiler_type_t type, Stream *s,
- lldb::Format format, const DataExtractor &data,
- lldb::offset_t byte_offset, size_t byte_size, uint32_t bitfield_bit_size,
- uint32_t bitfield_bit_offset, ExecutionContextScope *exe_scope)
-{
- if (!type) {
- s->Printf("no type value\n");
- return false;
- }
-
- if (IsScalarType(type))
- {
- return
- data.Dump(s, byte_offset, format, byte_size, 1, UINT64_MAX,
- LLDB_INVALID_ADDRESS, bitfield_bit_size, bitfield_bit_offset, exe_scope);
- }
-
- return false;
+void OCamlASTContext::DumpSummary(lldb::opaque_compiler_type_t type,
+ ExecutionContext *exe_ctx, Stream *s,
+ const DataExtractor &data,
+ lldb::offset_t data_offset,
+ size_t data_byte_size) {
+ s->Printf("no summary\n");
}
-void
-OCamlASTContext::DumpSummary(lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s,
- const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size)
-{
- s->Printf("no summary\n");
+void OCamlASTContext::DumpTypeDescription(lldb::opaque_compiler_type_t type) {
+ StreamFile s(stdout, false);
+ DumpTypeDescription(type, &s);
}
-void
-OCamlASTContext::DumpTypeDescription(lldb::opaque_compiler_type_t type)
-{
- StreamFile s(stdout, false);
- DumpTypeDescription(type, &s);
+void OCamlASTContext::DumpTypeDescription(lldb::opaque_compiler_type_t type,
+ Stream *s) {
+ static_cast<OCamlType *>(type)->Dump(s);
}
-void
-OCamlASTContext::DumpTypeDescription(lldb::opaque_compiler_type_t type, Stream *s)
-{
- static_cast<OCamlType *>(type)->Dump(s);
-}
-
-CompilerType
-OCamlASTContext::CreateBaseType(const ConstString &name, uint64_t byte_size)
-{
- if (m_base_type_map.empty())
- {
- OCamlPrimitiveType *type = new OCamlPrimitiveType(OCamlPrimitiveType::eTypeInt, ConstString("ocaml_int"), byte_size);
- m_base_type_map.emplace(type->GetName(), std::unique_ptr<OCamlASTContext::OCamlType>(type));
- }
+CompilerType OCamlASTContext::CreateBaseType(const ConstString &name,
+ uint64_t byte_size) {
+ if (m_base_type_map.empty()) {
+ OCamlPrimitiveType *type = new OCamlPrimitiveType(
+ OCamlPrimitiveType::eTypeInt, ConstString("ocaml_int"), byte_size);
+ m_base_type_map.emplace(type->GetName(),
+ std::unique_ptr<OCamlASTContext::OCamlType>(type));
+ }
- auto it = m_base_type_map.find(name);
- if (it == m_base_type_map.end())
- {
- OCamlPrimitiveType *type = new OCamlPrimitiveType(OCamlPrimitiveType::eTypeInt, name, byte_size);
- it = m_base_type_map.emplace(name, std::unique_ptr<OCamlASTContext::OCamlType>(type)).first;
- }
+ auto it = m_base_type_map.find(name);
+ if (it == m_base_type_map.end()) {
+ OCamlPrimitiveType *type =
+ new OCamlPrimitiveType(OCamlPrimitiveType::eTypeInt, name, byte_size);
+ it = m_base_type_map
+ .emplace(name, std::unique_ptr<OCamlASTContext::OCamlType>(type))
+ .first;
+ }
- return CompilerType(this, it->second.get());
+ return CompilerType(this, it->second.get());
}
-
OpenPOWER on IntegriCloud