summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm-c/DebugInfo.h
diff options
context:
space:
mode:
authorRobert Widmann <devteam.codafi@gmail.com>2018-05-21 16:27:35 +0000
committerRobert Widmann <devteam.codafi@gmail.com>2018-05-21 16:27:35 +0000
commit38fa750b7a7e854f95eae9b22f9996b20d53540a (patch)
tree83207646ced650b7b984f04211e97b224d9cabe1 /llvm/include/llvm-c/DebugInfo.h
parent9417f7ff2e3093aa85d5e89dca3dd1dfdc50abb3 (diff)
downloadbcm5719-llvm-38fa750b7a7e854f95eae9b22f9996b20d53540a.tar.gz
bcm5719-llvm-38fa750b7a7e854f95eae9b22f9996b20d53540a.zip
[LLVM-C] Add DIBuilder Bindings For ObjC Classes
Summary: Add LLVMDIBuilderCreateObjCIVar, LLVMDIBuilderCreateObjCProperty, and LLVMDIBuilderCreateInheritance to allow declaring metadata for Objective-C class hierarchies and their associated properties and instance variables. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: harlanhaskins, llvm-commits Differential Revision: https://reviews.llvm.org/D47123 llvm-svn: 332850
Diffstat (limited to 'llvm/include/llvm-c/DebugInfo.h')
-rw-r--r--llvm/include/llvm-c/DebugInfo.h62
1 files changed, 61 insertions, 1 deletions
diff --git a/llvm/include/llvm-c/DebugInfo.h b/llvm/include/llvm-c/DebugInfo.h
index 0576eecd9ef..edb78f3f69d 100644
--- a/llvm/include/llvm-c/DebugInfo.h
+++ b/llvm/include/llvm-c/DebugInfo.h
@@ -632,6 +632,50 @@ LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder,
uint64_t SizeInBits,
uint32_t AlignInBits,
LLVMDIFlags Flags);
+/**
+ * Create debugging information entry for Objective-C instance variable.
+ * \param Builder The DIBuilder.
+ * \param Name Member name.
+ * \param NameLen The length of the C string passed to \c Name.
+ * \param File File where this member is defined.
+ * \param LineNo Line number.
+ * \param SizeInBits Member size.
+ * \param AlignInBits Member alignment.
+ * \param OffsetInBits Member offset.
+ * \param Flags Flags to encode member attribute, e.g. private
+ * \param Ty Parent type.
+ * \param PropertyNode Property associated with this ivar.
+ */
+LLVMMetadataRef
+LLVMDIBuilderCreateObjCIVar(LLVMDIBuilderRef Builder,
+ const char *Name, size_t NameLen,
+ LLVMMetadataRef File, unsigned LineNo,
+ uint64_t SizeInBits, uint32_t AlignInBits,
+ uint64_t OffsetInBits, LLVMDIFlags Flags,
+ LLVMMetadataRef Ty, LLVMMetadataRef PropertyNode);
+
+/**
+ * Create debugging information entry for Objective-C property.
+ * \param Builder The DIBuilder.
+ * \param Name Property name.
+ * \param NameLen The length of the C string passed to \c Name.
+ * \param File File where this property is defined.
+ * \param LineNo Line number.
+ * \param GetterName Name of the Objective C property getter selector.
+ * \param GetterNameLen The length of the C string passed to \c GetterName.
+ * \param SetterName Name of the Objective C property setter selector.
+ * \param SetterNameLen The length of the C string passed to \c SetterName.
+ * \param PropertyAttributes Objective C property attributes.
+ * \param Ty Type.
+ */
+LLVMMetadataRef
+LLVMDIBuilderCreateObjCProperty(LLVMDIBuilderRef Builder,
+ const char *Name, size_t NameLen,
+ LLVMMetadataRef File, unsigned LineNo,
+ const char *GetterName, size_t GetterNameLen,
+ const char *SetterName, size_t SetterNameLen,
+ unsigned PropertyAttributes,
+ LLVMMetadataRef Ty);
/**
* Create a new DIType* with the "object pointer"
@@ -681,7 +725,7 @@ LLVMDIBuilderCreateNullPtrType(LLVMDIBuilderRef Builder);
* \param File File where this type is defined.
* \param LineNo Line number.
* \param Scope The surrounding context for the typedef.
-*/
+ */
LLVMMetadataRef
LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Builder, LLVMMetadataRef Type,
const char *Name, size_t NameLen,
@@ -689,6 +733,22 @@ LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Builder, LLVMMetadataRef Type,
LLVMMetadataRef Scope);
/**
+ * Create debugging information entry to establish inheritance relationship
+ * between two types.
+ * \param Builder The DIBuilder.
+ * \param Ty Original type.
+ * \param BaseTy Base type. Ty is inherits from base.
+ * \param BaseOffset Base offset.
+ * \param VBPtrOffset Virtual base pointer offset.
+ * \param Flags Flags to describe inheritance attribute, e.g. private
+ */
+LLVMMetadataRef
+LLVMDIBuilderCreateInheritance(LLVMDIBuilderRef Builder,
+ LLVMMetadataRef Ty, LLVMMetadataRef BaseTy,
+ uint64_t BaseOffset, uint32_t VBPtrOffset,
+ LLVMDIFlags Flags);
+
+/**
* Create a permanent forward-declared type.
* \param Builder The DIBuilder.
* \param Tag A unique tag for this type.
OpenPOWER on IntegriCloud