[LLVM-C] Miscellaneous Cleanups in DIBuilder Bindings

Summary:
* rL328953 does not include bindings for LLVMDIBuilderCreateClassType and LLVMDIBuilderCreateBitFieldMemberType despite declaring their prototypes.  Provide these bindings now.
* Switch to more precise types with specific numeric limits matching the DIBuilder's C++ API.

Reviewers: harlanhaskins, whitequark, deadalnix

Reviewed By: whitequark

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D46168

llvm-svn: 331114
This commit is contained in:
Robert Widmann 2018-04-28 18:13:39 +00:00
parent b58928096e
commit 2d2698c69c
2 changed files with 94 additions and 49 deletions

View File

@ -362,7 +362,7 @@ LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Builder,
LLVMMetadataRef LLVMDIBuilderCreateEnumerationType( LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
unsigned SizeInBits, unsigned AlignInBits, LLVMMetadataRef *Elements, uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef *Elements,
unsigned NumElements, LLVMMetadataRef ClassTy); unsigned NumElements, LLVMMetadataRef ClassTy);
/** /**
@ -385,7 +385,7 @@ LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
LLVMMetadataRef LLVMDIBuilderCreateUnionType( LLVMMetadataRef LLVMDIBuilderCreateUnionType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang,
const char *UniqueId, size_t UniqueIdLen); const char *UniqueId, size_t UniqueIdLen);
@ -400,8 +400,8 @@ LLVMMetadataRef LLVMDIBuilderCreateUnionType(
* \param NumSubscripts Number of subscripts. * \param NumSubscripts Number of subscripts.
*/ */
LLVMMetadataRef LLVMMetadataRef
LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, unsigned Size, LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, uint64_t Size,
unsigned AlignInBits, LLVMMetadataRef Ty, uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts, LLVMMetadataRef *Subscripts,
unsigned NumSubscripts); unsigned NumSubscripts);
@ -415,8 +415,8 @@ LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, unsigned Size,
* \param NumSubscripts Number of subscripts. * \param NumSubscripts Number of subscripts.
*/ */
LLVMMetadataRef LLVMMetadataRef
LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, unsigned Size, LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, uint64_t Size,
unsigned AlignInBits, LLVMMetadataRef Ty, uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts, LLVMMetadataRef *Subscripts,
unsigned NumSubscripts); unsigned NumSubscripts);
@ -441,7 +441,7 @@ LLVMDIBuilderCreateUnspecifiedType(LLVMDIBuilderRef Builder, const char *Name,
*/ */
LLVMMetadataRef LLVMMetadataRef
LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name, LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name,
size_t NameLen, unsigned SizeInBits, size_t NameLen, uint64_t SizeInBits,
LLVMDWARFTypeEncoding Encoding); LLVMDWARFTypeEncoding Encoding);
/** /**
@ -456,7 +456,7 @@ LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name,
*/ */
LLVMMetadataRef LLVMDIBuilderCreatePointerType( LLVMMetadataRef LLVMDIBuilderCreatePointerType(
LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy, LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy,
unsigned SizeInBits, unsigned AlignInBits, unsigned AddressSpace, uint64_t SizeInBits, uint32_t AlignInBits, unsigned AddressSpace,
const char *Name, size_t NameLen); const char *Name, size_t NameLen);
/** /**
@ -480,7 +480,7 @@ LLVMMetadataRef LLVMDIBuilderCreatePointerType(
LLVMMetadataRef LLVMDIBuilderCreateStructType( LLVMMetadataRef LLVMDIBuilderCreateStructType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements, LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements,
unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder, unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder,
const char *UniqueId, size_t UniqueIdLen); const char *UniqueId, size_t UniqueIdLen);
@ -502,7 +502,7 @@ LLVMMetadataRef LLVMDIBuilderCreateStructType(
LLVMMetadataRef LLVMDIBuilderCreateMemberType( LLVMMetadataRef LLVMDIBuilderCreateMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, size_t NameLen, LLVMMetadataRef File, unsigned LineNo,
unsigned SizeInBits, unsigned AlignInBits, unsigned OffsetInBits, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits,
LLVMDIFlags Flags, LLVMMetadataRef Ty); LLVMDIFlags Flags, LLVMMetadataRef Ty);
/** /**
@ -524,7 +524,7 @@ LLVMDIBuilderCreateStaticMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal, LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal,
unsigned AlignInBits); uint32_t AlignInBits);
/** /**
* Create debugging information entry for a pointer to member. * Create debugging information entry for a pointer to member.
@ -539,8 +539,8 @@ LLVMMetadataRef
LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder, LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder,
LLVMMetadataRef PointeeType, LLVMMetadataRef PointeeType,
LLVMMetadataRef ClassType, LLVMMetadataRef ClassType,
unsigned SizeInBits, uint64_t SizeInBits,
unsigned AlignInBits, uint32_t AlignInBits,
LLVMDIFlags Flags); LLVMDIFlags Flags);
/** /**
@ -602,7 +602,7 @@ LLVMDIBuilderCreateNullPtrType(LLVMDIBuilderRef Builder);
LLVMMetadataRef LLVMDIBuilderCreateForwardDecl( LLVMMetadataRef LLVMDIBuilderCreateForwardDecl(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
const char *UniqueIdentifier, size_t UniqueIdentifierLen); const char *UniqueIdentifier, size_t UniqueIdentifierLen);
/** /**
@ -626,7 +626,7 @@ LLVMMetadataRef
LLVMDIBuilderCreateReplaceableCompositeType( LLVMDIBuilderCreateReplaceableCompositeType(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
LLVMDIFlags Flags, const char *UniqueIdentifier, LLVMDIFlags Flags, const char *UniqueIdentifier,
size_t UniqueIdentifierLen); size_t UniqueIdentifierLen);
@ -649,32 +649,41 @@ LLVMDIBuilderCreateBitFieldMemberType(LLVMDIBuilderRef Builder,
LLVMMetadataRef Scope, LLVMMetadataRef Scope,
const char *Name, size_t NameLen, const char *Name, size_t NameLen,
LLVMMetadataRef File, unsigned LineNumber, LLVMMetadataRef File, unsigned LineNumber,
unsigned SizeInBits, uint64_t SizeInBits,
unsigned OffsetInBits, uint64_t OffsetInBits,
unsigned StorageOffsetInBits, uint64_t StorageOffsetInBits,
LLVMDIFlags Flags, LLVMMetadataRef Type); LLVMDIFlags Flags, LLVMMetadataRef Type);
/** /**
* Create debugging information entry for a class. * Create debugging information entry for a class.
* \param Scope Scope in which this class is defined. * \param Scope Scope in which this class is defined.
* \param Name class name. * \param Name Class name.
* \param File File where this member is defined. * \param NameLen The length of the C string passed to \c Name.
* \param LineNumber Line number. * \param File File where this member is defined.
* \param SizeInBits Member size. * \param LineNumber Line number.
* \param AlignInBits Member alignment. * \param SizeInBits Member size.
* \param OffsetInBits Member offset. * \param AlignInBits Member alignment.
* \param Flags Flags to encode member attribute, e.g. private * \param OffsetInBits Member offset.
* \param Elements class members. * \param Flags Flags to encode member attribute, e.g. private.
* \param NumElements Number of class elements. * \param DerivedFrom Debug info of the base class of this type.
* \param DerivedFrom Debug info of the base class of this type. * \param Elements Class members.
* \param TemplateParamsNode Template type parameters. * \param NumElements Number of class elements.
* \param VTableHolder Debug info of the base class that contains vtable
* for this type. This is used in
* DW_AT_containing_type. See DWARF documentation
* for more info.
* \param TemplateParamsNode Template type parameters.
* \param UniqueIdentifier A unique identifier for the type.
* \param UniqueIdentifierLen Length of the unique identifier.
*/ */
LLVMMetadataRef LLVMDIBuilderCreateClassType(LLVMDIBuilderRef Builder, LLVMMetadataRef LLVMDIBuilderCreateClassType(LLVMDIBuilderRef Builder,
LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef Scope, const char *Name, size_t NameLen,
LLVMMetadataRef File, unsigned LineNumber, unsigned SizeInBits, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
unsigned AlignInBits, unsigned OffsetInBits, LLVMDIFlags Flags, uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags,
LLVMMetadataRef DerivedFrom,
LLVMMetadataRef *Elements, unsigned NumElements, LLVMMetadataRef *Elements, unsigned NumElements,
LLVMMetadataRef DerivedFrom, LLVMMetadataRef TemplateParamsNode); LLVMMetadataRef VTableHolder, LLVMMetadataRef TemplateParamsNode,
const char *UniqueIdentifier, size_t UniqueIdentifierLen);
/** /**
* Create a new DIType* with "artificial" flag set. * Create a new DIType* with "artificial" flag set.

View File

@ -839,7 +839,7 @@ LLVMDIBuilderCreateDebugLocation(LLVMContextRef Ctx, unsigned Line,
LLVMMetadataRef LLVMDIBuilderCreateEnumerationType( LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
unsigned SizeInBits, unsigned AlignInBits, LLVMMetadataRef *Elements, uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef *Elements,
unsigned NumElements, LLVMMetadataRef ClassTy) { unsigned NumElements, LLVMMetadataRef ClassTy) {
auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements), auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements),
NumElements}); NumElements});
@ -851,7 +851,7 @@ return wrap(unwrap(Builder)->createEnumerationType(
LLVMMetadataRef LLVMDIBuilderCreateUnionType( LLVMMetadataRef LLVMDIBuilderCreateUnionType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang,
const char *UniqueId, size_t UniqueIdLen) { const char *UniqueId, size_t UniqueIdLen) {
auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements), auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements),
@ -864,8 +864,8 @@ LLVMMetadataRef LLVMDIBuilderCreateUnionType(
LLVMMetadataRef LLVMMetadataRef
LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, unsigned Size, LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, uint64_t Size,
unsigned AlignInBits, LLVMMetadataRef Ty, uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts, LLVMMetadataRef *Subscripts,
unsigned NumSubscripts) { unsigned NumSubscripts) {
auto Subs = unwrap(Builder)->getOrCreateArray({unwrap(Subscripts), auto Subs = unwrap(Builder)->getOrCreateArray({unwrap(Subscripts),
@ -875,8 +875,8 @@ LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, unsigned Size,
} }
LLVMMetadataRef LLVMMetadataRef
LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, unsigned Size, LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, uint64_t Size,
unsigned AlignInBits, LLVMMetadataRef Ty, uint32_t AlignInBits, LLVMMetadataRef Ty,
LLVMMetadataRef *Subscripts, LLVMMetadataRef *Subscripts,
unsigned NumSubscripts) { unsigned NumSubscripts) {
auto Subs = unwrap(Builder)->getOrCreateArray({unwrap(Subscripts), auto Subs = unwrap(Builder)->getOrCreateArray({unwrap(Subscripts),
@ -887,7 +887,7 @@ LLVMDIBuilderCreateVectorType(LLVMDIBuilderRef Builder, unsigned Size,
LLVMMetadataRef LLVMMetadataRef
LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name, LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name,
size_t NameLen, unsigned SizeInBits, size_t NameLen, uint64_t SizeInBits,
LLVMDWARFTypeEncoding Encoding) { LLVMDWARFTypeEncoding Encoding) {
return wrap(unwrap(Builder)->createBasicType({Name, NameLen}, return wrap(unwrap(Builder)->createBasicType({Name, NameLen},
SizeInBits, Encoding)); SizeInBits, Encoding));
@ -895,7 +895,7 @@ LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name,
LLVMMetadataRef LLVMDIBuilderCreatePointerType( LLVMMetadataRef LLVMDIBuilderCreatePointerType(
LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy, LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy,
unsigned SizeInBits, unsigned AlignInBits, unsigned AddressSpace, uint64_t SizeInBits, uint32_t AlignInBits, unsigned AddressSpace,
const char *Name, size_t NameLen) { const char *Name, size_t NameLen) {
return wrap(unwrap(Builder)->createPointerType(unwrapDI<DIType>(PointeeTy), return wrap(unwrap(Builder)->createPointerType(unwrapDI<DIType>(PointeeTy),
SizeInBits, AlignInBits, SizeInBits, AlignInBits,
@ -905,7 +905,7 @@ LLVMMetadataRef LLVMDIBuilderCreatePointerType(
LLVMMetadataRef LLVMDIBuilderCreateStructType( LLVMMetadataRef LLVMDIBuilderCreateStructType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
unsigned SizeInBits, unsigned AlignInBits, LLVMDIFlags Flags, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags,
LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements, LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements,
unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder, unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder,
const char *UniqueId, size_t UniqueIdLen) { const char *UniqueId, size_t UniqueIdLen) {
@ -920,8 +920,8 @@ LLVMMetadataRef LLVMDIBuilderCreateStructType(
LLVMMetadataRef LLVMDIBuilderCreateMemberType( LLVMMetadataRef LLVMDIBuilderCreateMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, unsigned SizeInBits, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
unsigned AlignInBits, unsigned OffsetInBits, LLVMDIFlags Flags, uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags,
LLVMMetadataRef Ty) { LLVMMetadataRef Ty) {
return wrap(unwrap(Builder)->createMemberType(unwrapDI<DIScope>(Scope), return wrap(unwrap(Builder)->createMemberType(unwrapDI<DIScope>(Scope),
{Name, NameLen}, unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits, {Name, NameLen}, unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits,
@ -939,7 +939,7 @@ LLVMDIBuilderCreateStaticMemberType(
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal, LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal,
unsigned AlignInBits) { uint32_t AlignInBits) {
return wrap(unwrap(Builder)->createStaticMemberType( return wrap(unwrap(Builder)->createStaticMemberType(
unwrapDI<DIScope>(Scope), {Name, NameLen}, unwrapDI<DIScope>(Scope), {Name, NameLen},
unwrapDI<DIFile>(File), LineNumber, unwrapDI<DIType>(Type), unwrapDI<DIFile>(File), LineNumber, unwrapDI<DIType>(Type),
@ -957,7 +957,7 @@ LLVMMetadataRef
LLVMDIBuilderCreateForwardDecl( LLVMDIBuilderCreateForwardDecl(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
const char *UniqueIdentifier, size_t UniqueIdentifierLen) { const char *UniqueIdentifier, size_t UniqueIdentifierLen) {
return wrap(unwrap(Builder)->createForwardDecl( return wrap(unwrap(Builder)->createForwardDecl(
Tag, {Name, NameLen}, unwrapDI<DIScope>(Scope), Tag, {Name, NameLen}, unwrapDI<DIScope>(Scope),
@ -969,7 +969,7 @@ LLVMMetadataRef
LLVMDIBuilderCreateReplaceableCompositeType( LLVMDIBuilderCreateReplaceableCompositeType(
LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, LLVMDIBuilderRef Builder, unsigned Tag, const char *Name,
size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
unsigned RuntimeLang, unsigned SizeInBits, unsigned AlignInBits, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
LLVMDIFlags Flags, const char *UniqueIdentifier, LLVMDIFlags Flags, const char *UniqueIdentifier,
size_t UniqueIdentifierLen) { size_t UniqueIdentifierLen) {
return wrap(unwrap(Builder)->createReplaceableCompositeType( return wrap(unwrap(Builder)->createReplaceableCompositeType(
@ -1002,8 +1002,8 @@ LLVMMetadataRef
LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder, LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder,
LLVMMetadataRef PointeeType, LLVMMetadataRef PointeeType,
LLVMMetadataRef ClassType, LLVMMetadataRef ClassType,
unsigned SizeInBits, uint64_t SizeInBits,
unsigned AlignInBits, uint32_t AlignInBits,
LLVMDIFlags Flags) { LLVMDIFlags Flags) {
return wrap(unwrap(Builder)->createMemberPointerType( return wrap(unwrap(Builder)->createMemberPointerType(
unwrapDI<DIType>(PointeeType), unwrapDI<DIType>(PointeeType),
@ -1011,6 +1011,42 @@ LLVMDIBuilderCreateMemberPointerType(LLVMDIBuilderRef Builder,
map_from_llvmDIFlags(Flags))); map_from_llvmDIFlags(Flags)));
} }
LLVMMetadataRef
LLVMDIBuilderCreateBitFieldMemberType(LLVMDIBuilderRef Builder,
LLVMMetadataRef Scope,
const char *Name, size_t NameLen,
LLVMMetadataRef File, unsigned LineNumber,
uint64_t SizeInBits,
uint64_t OffsetInBits,
uint64_t StorageOffsetInBits,
LLVMDIFlags Flags, LLVMMetadataRef Type) {
return wrap(unwrap(Builder)->createBitFieldMemberType(
unwrapDI<DIScope>(Scope), {Name, NameLen},
unwrapDI<DIFile>(File), LineNumber,
SizeInBits, OffsetInBits, StorageOffsetInBits,
map_from_llvmDIFlags(Flags), unwrapDI<DIType>(Type)));
}
LLVMMetadataRef LLVMDIBuilderCreateClassType(LLVMDIBuilderRef Builder,
LLVMMetadataRef Scope, const char *Name, size_t NameLen,
LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags,
LLVMMetadataRef DerivedFrom,
LLVMMetadataRef *Elements, unsigned NumElements,
LLVMMetadataRef VTableHolder, LLVMMetadataRef TemplateParamsNode,
const char *UniqueIdentifier, size_t UniqueIdentifierLen) {
auto Elts = unwrap(Builder)->getOrCreateArray({unwrap(Elements),
NumElements});
return wrap(unwrap(Builder)->createClassType(
unwrapDI<DIScope>(Scope), {Name, NameLen},
unwrapDI<DIFile>(File), LineNumber,
SizeInBits, AlignInBits, OffsetInBits,
map_from_llvmDIFlags(Flags), unwrapDI<DIType>(DerivedFrom),
Elts, unwrapDI<DIType>(VTableHolder),
unwrapDI<MDNode>(TemplateParamsNode),
{UniqueIdentifier, UniqueIdentifierLen}));
}
LLVMMetadataRef LLVMMetadataRef
LLVMDIBuilderCreateArtificialType(LLVMDIBuilderRef Builder, LLVMDIBuilderCreateArtificialType(LLVMDIBuilderRef Builder,
LLVMMetadataRef Type) { LLVMMetadataRef Type) {