@@ -295,12 +295,11 @@ namespace llvm {
295
295
// / \param DWARFMemorySpace DWARF memory space. (optional)
296
296
// / \param Name Pointer type name. (optional)
297
297
// / \param Annotations Member annotations.
298
- LLVM_ABI DIDerivedType *
299
- createPointerType (DIType *PointeeTy, uint64_t SizeInBits,
300
- uint32_t AlignInBits = 0 ,
301
- std::optional<unsigned > DWARFAddressSpace = std::nullopt,
302
- dwarf::MemorySpace DWARFMemorySpace = dwarf::DW_MSPACE_LLVM_none,
303
- StringRef Name = " " , DINodeArray Annotations = nullptr );
298
+ LLVM_ABI DIDerivedType *createPointerType (
299
+ DIType *PointeeTy, uint64_t SizeInBits, uint32_t AlignInBits = 0 ,
300
+ std::optional<unsigned > DWARFAddressSpace = std::nullopt,
301
+ dwarf::MemorySpace DWARFMemorySpace = dwarf::DW_MSPACE_LLVM_none,
302
+ StringRef Name = " " , DINodeArray Annotations = nullptr );
304
303
305
304
// / Create a __ptrauth qualifier.
306
305
LLVM_ABI DIDerivedType *
@@ -376,6 +375,22 @@ namespace llvm {
376
375
uint32_t VBPtrOffset,
377
376
DINode::DIFlags Flags);
378
377
378
+ // / Create debugging information entry for a member.
379
+ // / \param Scope Member scope.
380
+ // / \param Name Member name.
381
+ // / \param File File where this member is defined.
382
+ // / \param LineNo Line number.
383
+ // / \param SizeInBits Member size.
384
+ // / \param AlignInBits Member alignment.
385
+ // / \param OffsetInBits Member offset.
386
+ // / \param Flags Flags to encode member attribute, e.g. private
387
+ // / \param Ty Parent type.
388
+ // / \param Annotations Member annotations.
389
+ LLVM_ABI DIDerivedType *createMemberType (
390
+ DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo,
391
+ Metadata *SizeInBits, uint32_t AlignInBits, Metadata *OffsetInBits,
392
+ DINode::DIFlags Flags, DIType *Ty, DINodeArray Annotations = nullptr );
393
+
379
394
// / Create debugging information entry for a member.
380
395
// / \param Scope Member scope.
381
396
// / \param Name Member name.
@@ -428,6 +443,23 @@ namespace llvm {
428
443
Constant *Discriminant,
429
444
DIType *Ty);
430
445
446
+ // / Create debugging information entry for a bit field member.
447
+ // / \param Scope Member scope.
448
+ // / \param Name Member name.
449
+ // / \param File File where this member is defined.
450
+ // / \param LineNo Line number.
451
+ // / \param SizeInBits Member size.
452
+ // / \param OffsetInBits Member offset.
453
+ // / \param StorageOffsetInBits Member storage offset.
454
+ // / \param Flags Flags to encode member attribute.
455
+ // / \param Ty Parent type.
456
+ // / \param Annotations Member annotations.
457
+ LLVM_ABI DIDerivedType *createBitFieldMemberType (
458
+ DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNo,
459
+ Metadata *SizeInBits, Metadata *OffsetInBits,
460
+ uint64_t StorageOffsetInBits, DINode::DIFlags Flags, DIType *Ty,
461
+ DINodeArray Annotations = nullptr );
462
+
431
463
// / Create debugging information entry for a bit field member.
432
464
// / \param Scope Member scope.
433
465
// / \param Name Member name.
@@ -519,6 +551,29 @@ namespace llvm {
519
551
unsigned RunTimeLang = 0 , DIType *VTableHolder = nullptr ,
520
552
MDNode *TemplateParms = nullptr , StringRef UniqueIdentifier = " " );
521
553
554
+ // / Create debugging information entry for a struct.
555
+ // / \param Scope Scope in which this struct is defined.
556
+ // / \param Name Struct name.
557
+ // / \param File File where this member is defined.
558
+ // / \param LineNumber Line number.
559
+ // / \param SizeInBits Member size.
560
+ // / \param AlignInBits Member alignment.
561
+ // / \param Flags Flags to encode member attribute, e.g. private
562
+ // / \param Elements Struct elements.
563
+ // / \param RunTimeLang Optional parameter, Objective-C runtime version.
564
+ // / \param UniqueIdentifier A unique identifier for the struct.
565
+ // / \param Specification The type that this type completes. This is used by
566
+ // / Swift to represent generic types.
567
+ // / \param NumExtraInhabitants The number of extra inhabitants of the type.
568
+ // / An extra inhabitant is a bit pattern that does not represent a valid
569
+ // / value for instances of a given type. This is used by the Swift language.
570
+ LLVM_ABI DICompositeType *createStructType (
571
+ DIScope *Scope, StringRef Name, DIFile *File, unsigned LineNumber,
572
+ Metadata *SizeInBits, uint32_t AlignInBits, DINode::DIFlags Flags,
573
+ DIType *DerivedFrom, DINodeArray Elements, unsigned RunTimeLang = 0 ,
574
+ DIType *VTableHolder = nullptr , StringRef UniqueIdentifier = " " ,
575
+ DIType *Specification = nullptr , uint32_t NumExtraInhabitants = 0 );
576
+
522
577
// / Create debugging information entry for a struct.
523
578
// / \param Scope Scope in which this struct is defined.
524
579
// / \param Name Struct name.
0 commit comments