@@ -376,6 +376,22 @@ namespace llvm {
376376 uint32_t VBPtrOffset,
377377 DINode::DIFlags Flags);
378378
379+ // / Create debugging information entry for a member.
380+ // / \param Scope Member scope.
381+ // / \param Name Member name.
382+ // / \param File File where this member is defined.
383+ // / \param LineNo Line number.
384+ // / \param SizeInBits Member size.
385+ // / \param AlignInBits Member alignment.
386+ // / \param OffsetInBits Member offset.
387+ // / \param Flags Flags to encode member attribute, e.g. private
388+ // / \param Ty Parent type.
389+ // / \param Annotations Member annotations.
390+ LLVM_ABI DIDerivedType *createMemberType (
391+ DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo,
392+ Metadata *SizeInBits, uint32_t AlignInBits, Metadata *OffsetInBits,
393+ DINode::DIFlags Flags, DIType *Ty, DINodeArray Annotations = nullptr );
394+
379395 // / Create debugging information entry for a member.
380396 // / \param Scope Member scope.
381397 // / \param Name Member name.
@@ -428,6 +444,23 @@ namespace llvm {
428444 Constant *Discriminant,
429445 DIType *Ty);
430446
447+ // / Create debugging information entry for a bit field member.
448+ // / \param Scope Member scope.
449+ // / \param Name Member name.
450+ // / \param File File where this member is defined.
451+ // / \param LineNo Line number.
452+ // / \param SizeInBits Member size.
453+ // / \param OffsetInBits Member offset.
454+ // / \param StorageOffsetInBits Member storage offset.
455+ // / \param Flags Flags to encode member attribute.
456+ // / \param Ty Parent type.
457+ // / \param Annotations Member annotations.
458+ LLVM_ABI DIDerivedType *createBitFieldMemberType (
459+ DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo,
460+ Metadata *SizeInBits, Metadata *OffsetInBits,
461+ uint64_t StorageOffsetInBits, DINode::DIFlags Flags, DIType *Ty,
462+ DINodeArray Annotations = nullptr );
463+
431464 // / Create debugging information entry for a bit field member.
432465 // / \param Scope Member scope.
433466 // / \param Name Member name.
@@ -519,6 +552,29 @@ namespace llvm {
519552 unsigned RunTimeLang = 0 , DIType *VTableHolder = nullptr ,
520553 MDNode *TemplateParms = nullptr , StringRef UniqueIdentifier = " " );
521554
555+ // / Create debugging information entry for a struct.
556+ // / \param Scope Scope in which this struct is defined.
557+ // / \param Name Struct name.
558+ // / \param File File where this member is defined.
559+ // / \param LineNumber Line number.
560+ // / \param SizeInBits Member size.
561+ // / \param AlignInBits Member alignment.
562+ // / \param Flags Flags to encode member attribute, e.g. private
563+ // / \param Elements Struct elements.
564+ // / \param RunTimeLang Optional parameter, Objective-C runtime version.
565+ // / \param UniqueIdentifier A unique identifier for the struct.
566+ // / \param Specification The type that this type completes. This is used by
567+ // / Swift to represent generic types.
568+ // / \param NumExtraInhabitants The number of extra inhabitants of the type.
569+ // / An extra inhabitant is a bit pattern that does not represent a valid
570+ // / value for instances of a given type. This is used by the Swift language.
571+ LLVM_ABI DICompositeType *createStructType (
572+ DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber,
573+ Metadata *SizeInBits, uint32_t AlignInBits, DINode::DIFlags Flags,
574+ DIType *DerivedFrom, DINodeArray Elements, unsigned RunTimeLang = 0 ,
575+ DIType *VTableHolder = nullptr , StringRef UniqueIdentifier = " " ,
576+ DIType *Specification = nullptr , uint32_t NumExtraInhabitants = 0 );
577+
522578 // / Create debugging information entry for a struct.
523579 // / \param Scope Scope in which this struct is defined.
524580 // / \param Name Struct name.
0 commit comments