aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Target/ObjCLanguageRuntime.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Target/ObjCLanguageRuntime.h')
-rw-r--r--include/lldb/Target/ObjCLanguageRuntime.h41
1 files changed, 40 insertions, 1 deletions
diff --git a/include/lldb/Target/ObjCLanguageRuntime.h b/include/lldb/Target/ObjCLanguageRuntime.h
index 7bac57256444..12254f942e42 100644
--- a/include/lldb/Target/ObjCLanguageRuntime.h
+++ b/include/lldb/Target/ObjCLanguageRuntime.h
@@ -20,6 +20,7 @@
// Project includes
#include "lldb/lldb-private.h"
#include "lldb/Core/PluginInterface.h"
+#include "lldb/Symbol/ClangASTType.h"
#include "lldb/Symbol/Type.h"
#include "lldb/Symbol/TypeVendor.h"
#include "lldb/Target/LanguageRuntime.h"
@@ -221,7 +222,7 @@ public:
Describe (std::function <void (ObjCISA)> const &superclass_func,
std::function <bool (const char*, const char*)> const &instance_method_func,
std::function <bool (const char*, const char*)> const &class_method_func,
- std::function <bool (const char *, const char *, lldb::addr_t, uint64_t)> const &ivar_func)
+ std::function <bool (const char *, const char *, lldb::addr_t, uint64_t)> const &ivar_func) const
{
return false;
}
@@ -238,6 +239,25 @@ public:
m_type_wp = type_sp;
}
+ struct iVarDescriptor {
+ ConstString m_name;
+ ClangASTType m_type;
+ uint64_t m_size;
+ int32_t m_offset;
+ };
+
+ virtual size_t
+ GetNumIVars ()
+ {
+ return 0;
+ }
+
+ virtual iVarDescriptor
+ GetIVarAtIndex (size_t idx)
+ {
+ return iVarDescriptor();
+ }
+
protected:
bool
IsPointerValid (lldb::addr_t value,
@@ -252,6 +272,25 @@ public:
lldb::TypeWP m_type_wp;
};
+ class EncodingToType
+ {
+ public:
+ virtual ClangASTType RealizeType (ClangASTContext& ast_ctx, const char* name, bool allow_unknownanytype);
+ virtual ClangASTType RealizeType (const char* name, bool allow_unknownanytype);
+
+ virtual ClangASTType RealizeType (clang::ASTContext& ast_ctx, const char* name, bool allow_unknownanytype) = 0;
+
+ virtual ~EncodingToType();
+
+ protected:
+ std::unique_ptr<ClangASTContext> m_scratch_ast_ctx_ap;
+ };
+
+ typedef std::shared_ptr<EncodingToType> EncodingToTypeSP;
+
+ virtual EncodingToTypeSP
+ GetEncodingToType ();
+
virtual ClassDescriptorSP
GetClassDescriptor (ValueObject& in_value);