LLVM 20.0.0git
Typedefs | Enumerations | Functions
Debug Information

This file declares the C API endpoints for generating DWARF Debug Info. More...

Collaboration diagram for Debug Information:

Typedefs

typedef unsigned LLVMMetadataKind
 
typedef unsigned LLVMDWARFTypeEncoding
 An LLVM DWARF type encoding.
 

Enumerations

enum  LLVMDIFlags {
  LLVMDIFlagZero = 0 , LLVMDIFlagPrivate = 1 , LLVMDIFlagProtected = 2 , LLVMDIFlagPublic = 3 ,
  LLVMDIFlagFwdDecl = 1 << 2 , LLVMDIFlagAppleBlock = 1 << 3 , LLVMDIFlagReservedBit4 = 1 << 4 , LLVMDIFlagVirtual = 1 << 5 ,
  LLVMDIFlagArtificial = 1 << 6 , LLVMDIFlagExplicit = 1 << 7 , LLVMDIFlagPrototyped = 1 << 8 , LLVMDIFlagObjcClassComplete = 1 << 9 ,
  LLVMDIFlagObjectPointer = 1 << 10 , LLVMDIFlagVector = 1 << 11 , LLVMDIFlagStaticMember = 1 << 12 , LLVMDIFlagLValueReference = 1 << 13 ,
  LLVMDIFlagRValueReference = 1 << 14 , LLVMDIFlagReserved = 1 << 15 , LLVMDIFlagSingleInheritance = 1 << 16 , LLVMDIFlagMultipleInheritance = 2 << 16 ,
  LLVMDIFlagVirtualInheritance = 3 << 16 , LLVMDIFlagIntroducedVirtual = 1 << 18 , LLVMDIFlagBitField = 1 << 19 , LLVMDIFlagNoReturn = 1 << 20 ,
  LLVMDIFlagTypePassByValue = 1 << 22 , LLVMDIFlagTypePassByReference = 1 << 23 , LLVMDIFlagEnumClass = 1 << 24 , LLVMDIFlagFixedEnum = LLVMDIFlagEnumClass ,
  LLVMDIFlagThunk = 1 << 25 , LLVMDIFlagNonTrivial = 1 << 26 , LLVMDIFlagBigEndian = 1 << 27 , LLVMDIFlagLittleEndian = 1 << 28 ,
  LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5) , LLVMDIFlagAccessibility , LLVMDIFlagPtrToMemberRep
}
 Debug info flags. More...
 
enum  LLVMDWARFSourceLanguage {
  LLVMDWARFSourceLanguageC89 , LLVMDWARFSourceLanguageC , LLVMDWARFSourceLanguageAda83 , LLVMDWARFSourceLanguageC_plus_plus ,
  LLVMDWARFSourceLanguageCobol74 , LLVMDWARFSourceLanguageCobol85 , LLVMDWARFSourceLanguageFortran77 , LLVMDWARFSourceLanguageFortran90 ,
  LLVMDWARFSourceLanguagePascal83 , LLVMDWARFSourceLanguageModula2 , LLVMDWARFSourceLanguageJava , LLVMDWARFSourceLanguageC99 ,
  LLVMDWARFSourceLanguageAda95 , LLVMDWARFSourceLanguageFortran95 , LLVMDWARFSourceLanguagePLI , LLVMDWARFSourceLanguageObjC ,
  LLVMDWARFSourceLanguageObjC_plus_plus , LLVMDWARFSourceLanguageUPC , LLVMDWARFSourceLanguageD , LLVMDWARFSourceLanguagePython ,
  LLVMDWARFSourceLanguageOpenCL , LLVMDWARFSourceLanguageGo , LLVMDWARFSourceLanguageModula3 , LLVMDWARFSourceLanguageHaskell ,
  LLVMDWARFSourceLanguageC_plus_plus_03 , LLVMDWARFSourceLanguageC_plus_plus_11 , LLVMDWARFSourceLanguageOCaml , LLVMDWARFSourceLanguageRust ,
  LLVMDWARFSourceLanguageC11 , LLVMDWARFSourceLanguageSwift , LLVMDWARFSourceLanguageJulia , LLVMDWARFSourceLanguageDylan ,
  LLVMDWARFSourceLanguageC_plus_plus_14 , LLVMDWARFSourceLanguageFortran03 , LLVMDWARFSourceLanguageFortran08 , LLVMDWARFSourceLanguageRenderScript ,
  LLVMDWARFSourceLanguageBLISS , LLVMDWARFSourceLanguageKotlin , LLVMDWARFSourceLanguageZig , LLVMDWARFSourceLanguageCrystal ,
  LLVMDWARFSourceLanguageC_plus_plus_17 , LLVMDWARFSourceLanguageC_plus_plus_20 , LLVMDWARFSourceLanguageC17 , LLVMDWARFSourceLanguageFortran18 ,
  LLVMDWARFSourceLanguageAda2005 , LLVMDWARFSourceLanguageAda2012 , LLVMDWARFSourceLanguageHIP , LLVMDWARFSourceLanguageAssembly ,
  LLVMDWARFSourceLanguageC_sharp , LLVMDWARFSourceLanguageMojo , LLVMDWARFSourceLanguageGLSL , LLVMDWARFSourceLanguageGLSL_ES ,
  LLVMDWARFSourceLanguageHLSL , LLVMDWARFSourceLanguageOpenCL_CPP , LLVMDWARFSourceLanguageCPP_for_OpenCL , LLVMDWARFSourceLanguageSYCL ,
  LLVMDWARFSourceLanguageRuby , LLVMDWARFSourceLanguageMove , LLVMDWARFSourceLanguageHylo , LLVMDWARFSourceLanguageMips_Assembler ,
  LLVMDWARFSourceLanguageGOOGLE_RenderScript , LLVMDWARFSourceLanguageBORLAND_Delphi
}
 Source languages known by DWARF. More...
 
enum  LLVMDWARFEmissionKind { LLVMDWARFEmissionNone = 0 , LLVMDWARFEmissionFull , LLVMDWARFEmissionLineTablesOnly }
 The amount of debug information to emit. More...
 
enum  {
  LLVMMDStringMetadataKind , LLVMConstantAsMetadataMetadataKind , LLVMLocalAsMetadataMetadataKind , LLVMDistinctMDOperandPlaceholderMetadataKind ,
  LLVMMDTupleMetadataKind , LLVMDILocationMetadataKind , LLVMDIExpressionMetadataKind , LLVMDIGlobalVariableExpressionMetadataKind ,
  LLVMGenericDINodeMetadataKind , LLVMDISubrangeMetadataKind , LLVMDIEnumeratorMetadataKind , LLVMDIBasicTypeMetadataKind ,
  LLVMDIDerivedTypeMetadataKind , LLVMDICompositeTypeMetadataKind , LLVMDISubroutineTypeMetadataKind , LLVMDIFileMetadataKind ,
  LLVMDICompileUnitMetadataKind , LLVMDISubprogramMetadataKind , LLVMDILexicalBlockMetadataKind , LLVMDILexicalBlockFileMetadataKind ,
  LLVMDINamespaceMetadataKind , LLVMDIModuleMetadataKind , LLVMDITemplateTypeParameterMetadataKind , LLVMDITemplateValueParameterMetadataKind ,
  LLVMDIGlobalVariableMetadataKind , LLVMDILocalVariableMetadataKind , LLVMDILabelMetadataKind , LLVMDIObjCPropertyMetadataKind ,
  LLVMDIImportedEntityMetadataKind , LLVMDIMacroMetadataKind , LLVMDIMacroFileMetadataKind , LLVMDICommonBlockMetadataKind ,
  LLVMDIStringTypeMetadataKind , LLVMDIGenericSubrangeMetadataKind , LLVMDIArgListMetadataKind , LLVMDIAssignIDMetadataKind
}
 The kind of metadata nodes. More...
 
enum  LLVMDWARFMacinfoRecordType {
  LLVMDWARFMacinfoRecordTypeDefine = 0x01 , LLVMDWARFMacinfoRecordTypeMacro = 0x02 , LLVMDWARFMacinfoRecordTypeStartFile = 0x03 , LLVMDWARFMacinfoRecordTypeEndFile = 0x04 ,
  LLVMDWARFMacinfoRecordTypeVendorExt = 0xff
}
 Describes the kind of macro declaration used for LLVMDIBuilderCreateMacro. More...
 

Functions

unsigned LLVMDebugMetadataVersion (void)
 The current debug metadata version number.
 
unsigned LLVMGetModuleDebugMetadataVersion (LLVMModuleRef Module)
 The version of debug metadata that's present in the provided Module.
 
LLVMBool LLVMStripModuleDebugInfo (LLVMModuleRef Module)
 Strip debug info in the module if it exists.
 
LLVMDIBuilderRef LLVMCreateDIBuilderDisallowUnresolved (LLVMModuleRef M)
 Construct a builder for a module, and do not allow for unresolved nodes attached to the module.
 
LLVMDIBuilderRef LLVMCreateDIBuilder (LLVMModuleRef M)
 Construct a builder for a module and collect unresolved nodes attached to the module in order to resolve cycles during a call to LLVMDIBuilderFinalize.
 
void LLVMDisposeDIBuilder (LLVMDIBuilderRef Builder)
 Deallocates the DIBuilder and everything it owns.
 
void LLVMDIBuilderFinalize (LLVMDIBuilderRef Builder)
 Construct any deferred debug info descriptors.
 
void LLVMDIBuilderFinalizeSubprogram (LLVMDIBuilderRef Builder, LLVMMetadataRef Subprogram)
 Finalize a specific subprogram.
 
LLVMMetadataRef LLVMDIBuilderCreateCompileUnit (LLVMDIBuilderRef Builder, LLVMDWARFSourceLanguage Lang, LLVMMetadataRef FileRef, const char *Producer, size_t ProducerLen, LLVMBool isOptimized, const char *Flags, size_t FlagsLen, unsigned RuntimeVer, const char *SplitName, size_t SplitNameLen, LLVMDWARFEmissionKind Kind, unsigned DWOId, LLVMBool SplitDebugInlining, LLVMBool DebugInfoForProfiling, const char *SysRoot, size_t SysRootLen, const char *SDK, size_t SDKLen)
 A CompileUnit provides an anchor for all debugging information generated during this instance of compilation.
 
LLVMMetadataRef LLVMDIBuilderCreateFile (LLVMDIBuilderRef Builder, const char *Filename, size_t FilenameLen, const char *Directory, size_t DirectoryLen)
 Create a file descriptor to hold debugging information for a file.
 
LLVMMetadataRef LLVMDIBuilderCreateModule (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentScope, const char *Name, size_t NameLen, const char *ConfigMacros, size_t ConfigMacrosLen, const char *IncludePath, size_t IncludePathLen, const char *APINotesFile, size_t APINotesFileLen)
 Creates a new descriptor for a module with the specified parent scope.
 
LLVMMetadataRef LLVMDIBuilderCreateNameSpace (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentScope, const char *Name, size_t NameLen, LLVMBool ExportSymbols)
 Creates a new descriptor for a namespace with the specified parent scope.
 
LLVMMetadataRef LLVMDIBuilderCreateFunction (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, const char *LinkageName, size_t LinkageNameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool IsLocalToUnit, LLVMBool IsDefinition, unsigned ScopeLine, LLVMDIFlags Flags, LLVMBool IsOptimized)
 Create a new descriptor for the specified subprogram.
 
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, unsigned Column)
 Create a descriptor for a lexical block with the specified parent context.
 
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Discriminator)
 Create a descriptor for a lexical block with a new file attached.
 
LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromNamespace (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef NS, LLVMMetadataRef File, unsigned Line)
 Create a descriptor for an imported namespace.
 
LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromAlias (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef ImportedEntity, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef *Elements, unsigned NumElements)
 Create a descriptor for an imported module that aliases another imported entity descriptor.
 
LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromModule (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef M, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef *Elements, unsigned NumElements)
 Create a descriptor for an imported module.
 
LLVMMetadataRef LLVMDIBuilderCreateImportedDeclaration (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef Decl, LLVMMetadataRef File, unsigned Line, const char *Name, size_t NameLen, LLVMMetadataRef *Elements, unsigned NumElements)
 Create a descriptor for an imported function, type, or variable.
 
LLVMMetadataRef LLVMDIBuilderCreateDebugLocation (LLVMContextRef Ctx, unsigned Line, unsigned Column, LLVMMetadataRef Scope, LLVMMetadataRef InlinedAt)
 Creates a new DebugLocation that describes a source location.
 
unsigned LLVMDILocationGetLine (LLVMMetadataRef Location)
 Get the line number of this debug location.
 
unsigned LLVMDILocationGetColumn (LLVMMetadataRef Location)
 Get the column number of this debug location.
 
LLVMMetadataRef LLVMDILocationGetScope (LLVMMetadataRef Location)
 Get the local scope associated with this debug location.
 
LLVMMetadataRef LLVMDILocationGetInlinedAt (LLVMMetadataRef Location)
 Get the "inline at" location associated with this debug location.
 
LLVMMetadataRef LLVMDIScopeGetFile (LLVMMetadataRef Scope)
 Get the metadata of the file associated with a given scope.
 
const charLLVMDIFileGetDirectory (LLVMMetadataRef File, unsigned *Len)
 Get the directory of a given file.
 
const charLLVMDIFileGetFilename (LLVMMetadataRef File, unsigned *Len)
 Get the name of a given file.
 
const charLLVMDIFileGetSource (LLVMMetadataRef File, unsigned *Len)
 Get the source of a given file.
 
LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray (LLVMDIBuilderRef Builder, LLVMMetadataRef *Data, size_t NumElements)
 Create a type array.
 
LLVMMetadataRef LLVMDIBuilderCreateSubroutineType (LLVMDIBuilderRef Builder, LLVMMetadataRef File, LLVMMetadataRef *ParameterTypes, unsigned NumParameterTypes, LLVMDIFlags Flags)
 Create subroutine type.
 
LLVMMetadataRef LLVMDIBuilderCreateMacro (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentMacroFile, unsigned Line, LLVMDWARFMacinfoRecordType RecordType, const char *Name, size_t NameLen, const char *Value, size_t ValueLen)
 Create debugging information entry for a macro.
 
LLVMMetadataRef LLVMDIBuilderCreateTempMacroFile (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentMacroFile, unsigned Line, LLVMMetadataRef File)
 Create debugging information temporary entry for a macro file.
 
LLVMMetadataRef LLVMDIBuilderCreateEnumerator (LLVMDIBuilderRef Builder, const char *Name, size_t NameLen, int64_t Value, LLVMBool IsUnsigned)
 Create debugging information entry for an enumerator.
 
LLVMMetadataRef LLVMDIBuilderCreateEnumerationType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef *Elements, unsigned NumElements, LLVMMetadataRef ClassTy)
 Create debugging information entry for an enumeration.
 
LLVMMetadataRef LLVMDIBuilderCreateUnionType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags, LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang, const char *UniqueId, size_t UniqueIdLen)
 Create debugging information entry for a union.
 
LLVMMetadataRef LLVMDIBuilderCreateArrayType (LLVMDIBuilderRef Builder, uint64_t Size, uint32_t AlignInBits, LLVMMetadataRef Ty, LLVMMetadataRef *Subscripts, unsigned NumSubscripts)
 Create debugging information entry for an array.
 
LLVMMetadataRef LLVMDIBuilderCreateVectorType (LLVMDIBuilderRef Builder, uint64_t Size, uint32_t AlignInBits, LLVMMetadataRef Ty, LLVMMetadataRef *Subscripts, unsigned NumSubscripts)
 Create debugging information entry for a vector type.
 
LLVMMetadataRef LLVMDIBuilderCreateUnspecifiedType (LLVMDIBuilderRef Builder, const char *Name, size_t NameLen)
 Create a DWARF unspecified type.
 
LLVMMetadataRef LLVMDIBuilderCreateBasicType (LLVMDIBuilderRef Builder, const char *Name, size_t NameLen, uint64_t SizeInBits, LLVMDWARFTypeEncoding Encoding, LLVMDIFlags Flags)
 Create debugging information entry for a basic type.
 
LLVMMetadataRef LLVMDIBuilderCreatePointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy, uint64_t SizeInBits, uint32_t AlignInBits, unsigned AddressSpace, const char *Name, size_t NameLen)
 Create debugging information entry for a pointer.
 
LLVMMetadataRef LLVMDIBuilderCreateStructType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags, LLVMMetadataRef DerivedFrom, LLVMMetadataRef *Elements, unsigned NumElements, unsigned RunTimeLang, LLVMMetadataRef VTableHolder, const char *UniqueId, size_t UniqueIdLen)
 Create debugging information entry for a struct.
 
LLVMMetadataRef LLVMDIBuilderCreateMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, LLVMDIFlags Flags, LLVMMetadataRef Ty)
 Create debugging information entry for a member.
 
LLVMMetadataRef LLVMDIBuilderCreateStaticMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNumber, LLVMMetadataRef Type, LLVMDIFlags Flags, LLVMValueRef ConstantVal, uint32_t AlignInBits)
 Create debugging information entry for a C++ static data member.
 
LLVMMetadataRef LLVMDIBuilderCreateMemberPointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeType, LLVMMetadataRef ClassType, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags)
 Create debugging information entry for a pointer to member.
 
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 instance variable.
 
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 debugging information entry for Objective-C property.
 
LLVMMetadataRef LLVMDIBuilderCreateObjectPointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef Type)
 Create a uniqued DIType* clone with FlagObjectPointer and FlagArtificial set.
 
LLVMMetadataRef LLVMDIBuilderCreateQualifiedType (LLVMDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Type)
 Create debugging information entry for a qualified type, e.g.
 
LLVMMetadataRef LLVMDIBuilderCreateReferenceType (LLVMDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Type)
 Create debugging information entry for a c++ style reference or rvalue reference type.
 
LLVMMetadataRef LLVMDIBuilderCreateNullPtrType (LLVMDIBuilderRef Builder)
 Create C++11 nullptr type.
 
LLVMMetadataRef LLVMDIBuilderCreateTypedef (LLVMDIBuilderRef Builder, LLVMMetadataRef Type, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Scope, uint32_t AlignInBits)
 Create debugging information entry for a typedef.
 
LLVMMetadataRef LLVMDIBuilderCreateInheritance (LLVMDIBuilderRef Builder, LLVMMetadataRef Ty, LLVMMetadataRef BaseTy, uint64_t BaseOffset, uint32_t VBPtrOffset, LLVMDIFlags Flags)
 Create debugging information entry to establish inheritance relationship between two types.
 
LLVMMetadataRef LLVMDIBuilderCreateForwardDecl (LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits, const char *UniqueIdentifier, size_t UniqueIdentifierLen)
 Create a permanent forward-declared type.
 
LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType (LLVMDIBuilderRef Builder, unsigned Tag, const char *Name, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags, const char *UniqueIdentifier, size_t UniqueIdentifierLen)
 Create a temporary forward-declared type.
 
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)
 Create debugging information entry for a bit field member.
 
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)
 Create debugging information entry for a class.
 
LLVMMetadataRef LLVMDIBuilderCreateArtificialType (LLVMDIBuilderRef Builder, LLVMMetadataRef Type)
 Create a uniqued DIType* clone with FlagArtificial set.
 
const charLLVMDITypeGetName (LLVMMetadataRef DType, size_t *Length)
 Get the name of this DIType.
 
uint64_t LLVMDITypeGetSizeInBits (LLVMMetadataRef DType)
 Get the size of this DIType in bits.
 
uint64_t LLVMDITypeGetOffsetInBits (LLVMMetadataRef DType)
 Get the offset of this DIType in bits.
 
uint32_t LLVMDITypeGetAlignInBits (LLVMMetadataRef DType)
 Get the alignment of this DIType in bits.
 
unsigned LLVMDITypeGetLine (LLVMMetadataRef DType)
 Get the source line where this DIType is declared.
 
LLVMDIFlags LLVMDITypeGetFlags (LLVMMetadataRef DType)
 Get the flags associated with this DIType.
 
LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange (LLVMDIBuilderRef Builder, int64_t LowerBound, int64_t Count)
 Create a descriptor for a value range.
 
LLVMMetadataRef LLVMDIBuilderGetOrCreateArray (LLVMDIBuilderRef Builder, LLVMMetadataRef *Data, size_t NumElements)
 Create an array of DI Nodes.
 
LLVMMetadataRef LLVMDIBuilderCreateExpression (LLVMDIBuilderRef Builder, uint64_t *Addr, size_t Length)
 Create a new descriptor for the specified variable which has a complex address expression for its address.
 
LLVMMetadataRef LLVMDIBuilderCreateConstantValueExpression (LLVMDIBuilderRef Builder, uint64_t Value)
 Create a new descriptor for the specified variable that does not have an address, but does have a constant value.
 
LLVMMetadataRef LLVMDIBuilderCreateGlobalVariableExpression (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, const char *Linkage, size_t LinkLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool LocalToUnit, LLVMMetadataRef Expr, LLVMMetadataRef Decl, uint32_t AlignInBits)
 Create a new descriptor for the specified variable.
 
uint16_t LLVMGetDINodeTag (LLVMMetadataRef MD)
 Get the dwarf::Tag of a DINode.
 
LLVMMetadataRef LLVMDIGlobalVariableExpressionGetVariable (LLVMMetadataRef GVE)
 Retrieves the DIVariable associated with this global variable expression.
 
LLVMMetadataRef LLVMDIGlobalVariableExpressionGetExpression (LLVMMetadataRef GVE)
 Retrieves the DIExpression associated with this global variable expression.
 
LLVMMetadataRef LLVMDIVariableGetFile (LLVMMetadataRef Var)
 Get the metadata of the file associated with a given variable.
 
LLVMMetadataRef LLVMDIVariableGetScope (LLVMMetadataRef Var)
 Get the metadata of the scope associated with a given variable.
 
unsigned LLVMDIVariableGetLine (LLVMMetadataRef Var)
 Get the source line where this DIVariable is declared.
 
LLVMMetadataRef LLVMTemporaryMDNode (LLVMContextRef Ctx, LLVMMetadataRef *Data, size_t NumElements)
 Create a new temporary MDNode.
 
void LLVMDisposeTemporaryMDNode (LLVMMetadataRef TempNode)
 Deallocate a temporary node.
 
void LLVMMetadataReplaceAllUsesWith (LLVMMetadataRef TempTargetMetadata, LLVMMetadataRef Replacement)
 Replace all uses of temporary metadata.
 
LLVMMetadataRef LLVMDIBuilderCreateTempGlobalVariableFwdDecl (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, const char *Linkage, size_t LnkLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool LocalToUnit, LLVMMetadataRef Decl, uint32_t AlignInBits)
 Create a new descriptor for the specified global variable that is temporary and meant to be RAUWed.
 
LLVMDbgRecordRef LLVMDIBuilderInsertDeclareRecordBefore (LLVMDIBuilderRef Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMValueRef Instr)
 Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).
 
LLVMDbgRecordRef LLVMDIBuilderInsertDeclareRecordAtEnd (LLVMDIBuilderRef Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMBasicBlockRef Block)
 Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).
 
LLVMDbgRecordRef LLVMDIBuilderInsertDbgValueRecordBefore (LLVMDIBuilderRef Builder, LLVMValueRef Val, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMValueRef Instr)
 Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).
 
LLVMDbgRecordRef LLVMDIBuilderInsertDbgValueRecordAtEnd (LLVMDIBuilderRef Builder, LLVMValueRef Val, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMBasicBlockRef Block)
 Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).
 
LLVMMetadataRef LLVMDIBuilderCreateAutoVariable (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool AlwaysPreserve, LLVMDIFlags Flags, uint32_t AlignInBits)
 Create a new descriptor for a local auto variable.
 
LLVMMetadataRef LLVMDIBuilderCreateParameterVariable (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name, size_t NameLen, unsigned ArgNo, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty, LLVMBool AlwaysPreserve, LLVMDIFlags Flags)
 Create a new descriptor for a function parameter variable.
 
LLVMMetadataRef LLVMGetSubprogram (LLVMValueRef Func)
 Get the metadata of the subprogram attached to a function.
 
void LLVMSetSubprogram (LLVMValueRef Func, LLVMMetadataRef SP)
 Set the subprogram attached to a function.
 
unsigned LLVMDISubprogramGetLine (LLVMMetadataRef Subprogram)
 Get the line associated with a given subprogram.
 
LLVMMetadataRef LLVMInstructionGetDebugLoc (LLVMValueRef Inst)
 Get the debug location for the given instruction.
 
void LLVMInstructionSetDebugLoc (LLVMValueRef Inst, LLVMMetadataRef Loc)
 Set the debug location for the given instruction.
 
LLVMMetadataKind LLVMGetMetadataKind (LLVMMetadataRef Metadata)
 Obtain the enumerated type of a Metadata instance.
 

Detailed Description

This file declares the C API endpoints for generating DWARF Debug Info.

Note: This interface is experimental. It is NOT stable, and may be changed without warning.

Typedef Documentation

◆ LLVMDWARFTypeEncoding

An LLVM DWARF type encoding.

Definition at line 203 of file DebugInfo.h.

◆ LLVMMetadataKind

Definition at line 198 of file DebugInfo.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

The kind of metadata nodes.

Enumerator
LLVMMDStringMetadataKind 
LLVMConstantAsMetadataMetadataKind 
LLVMLocalAsMetadataMetadataKind 
LLVMDistinctMDOperandPlaceholderMetadataKind 
LLVMMDTupleMetadataKind 
LLVMDILocationMetadataKind 
LLVMDIExpressionMetadataKind 
LLVMDIGlobalVariableExpressionMetadataKind 
LLVMGenericDINodeMetadataKind 
LLVMDISubrangeMetadataKind 
LLVMDIEnumeratorMetadataKind 
LLVMDIBasicTypeMetadataKind 
LLVMDIDerivedTypeMetadataKind 
LLVMDICompositeTypeMetadataKind 
LLVMDISubroutineTypeMetadataKind 
LLVMDIFileMetadataKind 
LLVMDICompileUnitMetadataKind 
LLVMDISubprogramMetadataKind 
LLVMDILexicalBlockMetadataKind 
LLVMDILexicalBlockFileMetadataKind 
LLVMDINamespaceMetadataKind 
LLVMDIModuleMetadataKind 
LLVMDITemplateTypeParameterMetadataKind 
LLVMDITemplateValueParameterMetadataKind 
LLVMDIGlobalVariableMetadataKind 
LLVMDILocalVariableMetadataKind 
LLVMDILabelMetadataKind 
LLVMDIObjCPropertyMetadataKind 
LLVMDIImportedEntityMetadataKind 
LLVMDIMacroMetadataKind 
LLVMDIMacroFileMetadataKind 
LLVMDICommonBlockMetadataKind 
LLVMDIStringTypeMetadataKind 
LLVMDIGenericSubrangeMetadataKind 
LLVMDIArgListMetadataKind 
LLVMDIAssignIDMetadataKind 

Definition at line 160 of file DebugInfo.h.

◆ LLVMDIFlags

Debug info flags.

Enumerator
LLVMDIFlagZero 
LLVMDIFlagPrivate 
LLVMDIFlagProtected 
LLVMDIFlagPublic 
LLVMDIFlagFwdDecl 
LLVMDIFlagAppleBlock 
LLVMDIFlagReservedBit4 
LLVMDIFlagVirtual 
LLVMDIFlagArtificial 
LLVMDIFlagExplicit 
LLVMDIFlagPrototyped 
LLVMDIFlagObjcClassComplete 
LLVMDIFlagObjectPointer 
LLVMDIFlagVector 
LLVMDIFlagStaticMember 
LLVMDIFlagLValueReference 
LLVMDIFlagRValueReference 
LLVMDIFlagReserved 
LLVMDIFlagSingleInheritance 
LLVMDIFlagMultipleInheritance 
LLVMDIFlagVirtualInheritance 
LLVMDIFlagIntroducedVirtual 
LLVMDIFlagBitField 
LLVMDIFlagNoReturn 
LLVMDIFlagTypePassByValue 
LLVMDIFlagTypePassByReference 
LLVMDIFlagEnumClass 
LLVMDIFlagFixedEnum 
LLVMDIFlagThunk 
LLVMDIFlagNonTrivial 
LLVMDIFlagBigEndian 
LLVMDIFlagLittleEndian 
LLVMDIFlagIndirectVirtualBase 
LLVMDIFlagAccessibility 
LLVMDIFlagPtrToMemberRep 

Definition at line 34 of file DebugInfo.h.

◆ LLVMDWARFEmissionKind

The amount of debug information to emit.

Enumerator
LLVMDWARFEmissionNone 
LLVMDWARFEmissionFull 
LLVMDWARFEmissionLineTablesOnly 

Definition at line 151 of file DebugInfo.h.

◆ LLVMDWARFMacinfoRecordType

Describes the kind of macro declaration used for LLVMDIBuilderCreateMacro.

See also
llvm::dwarf::MacinfoRecordType
Note
Values are from DW_MACINFO_* constants in the DWARF specification.
Enumerator
LLVMDWARFMacinfoRecordTypeDefine 
LLVMDWARFMacinfoRecordTypeMacro 
LLVMDWARFMacinfoRecordTypeStartFile 
LLVMDWARFMacinfoRecordTypeEndFile 
LLVMDWARFMacinfoRecordTypeVendorExt 

Definition at line 210 of file DebugInfo.h.

◆ LLVMDWARFSourceLanguage

Source languages known by DWARF.

Enumerator
LLVMDWARFSourceLanguageC89 
LLVMDWARFSourceLanguageC 
LLVMDWARFSourceLanguageAda83 
LLVMDWARFSourceLanguageC_plus_plus 
LLVMDWARFSourceLanguageCobol74 
LLVMDWARFSourceLanguageCobol85 
LLVMDWARFSourceLanguageFortran77 
LLVMDWARFSourceLanguageFortran90 
LLVMDWARFSourceLanguagePascal83 
LLVMDWARFSourceLanguageModula2 
LLVMDWARFSourceLanguageJava 
LLVMDWARFSourceLanguageC99 
LLVMDWARFSourceLanguageAda95 
LLVMDWARFSourceLanguageFortran95 
LLVMDWARFSourceLanguagePLI 
LLVMDWARFSourceLanguageObjC 
LLVMDWARFSourceLanguageObjC_plus_plus 
LLVMDWARFSourceLanguageUPC 
LLVMDWARFSourceLanguageD 
LLVMDWARFSourceLanguagePython 
LLVMDWARFSourceLanguageOpenCL 
LLVMDWARFSourceLanguageGo 
LLVMDWARFSourceLanguageModula3 
LLVMDWARFSourceLanguageHaskell 
LLVMDWARFSourceLanguageC_plus_plus_03 
LLVMDWARFSourceLanguageC_plus_plus_11 
LLVMDWARFSourceLanguageOCaml 
LLVMDWARFSourceLanguageRust 
LLVMDWARFSourceLanguageC11 
LLVMDWARFSourceLanguageSwift 
LLVMDWARFSourceLanguageJulia 
LLVMDWARFSourceLanguageDylan 
LLVMDWARFSourceLanguageC_plus_plus_14 
LLVMDWARFSourceLanguageFortran03 
LLVMDWARFSourceLanguageFortran08 
LLVMDWARFSourceLanguageRenderScript 
LLVMDWARFSourceLanguageBLISS 
LLVMDWARFSourceLanguageKotlin 
LLVMDWARFSourceLanguageZig 
LLVMDWARFSourceLanguageCrystal 
LLVMDWARFSourceLanguageC_plus_plus_17 
LLVMDWARFSourceLanguageC_plus_plus_20 
LLVMDWARFSourceLanguageC17 
LLVMDWARFSourceLanguageFortran18 
LLVMDWARFSourceLanguageAda2005 
LLVMDWARFSourceLanguageAda2012 
LLVMDWARFSourceLanguageHIP 
LLVMDWARFSourceLanguageAssembly 
LLVMDWARFSourceLanguageC_sharp 
LLVMDWARFSourceLanguageMojo 
LLVMDWARFSourceLanguageGLSL 
LLVMDWARFSourceLanguageGLSL_ES 
LLVMDWARFSourceLanguageHLSL 
LLVMDWARFSourceLanguageOpenCL_CPP 
LLVMDWARFSourceLanguageCPP_for_OpenCL 
LLVMDWARFSourceLanguageSYCL 
LLVMDWARFSourceLanguageRuby 
LLVMDWARFSourceLanguageMove 
LLVMDWARFSourceLanguageHylo 
LLVMDWARFSourceLanguageMips_Assembler 
LLVMDWARFSourceLanguageGOOGLE_RenderScript 
LLVMDWARFSourceLanguageBORLAND_Delphi 

Definition at line 78 of file DebugInfo.h.

Function Documentation

◆ LLVMCreateDIBuilder()

LLVMDIBuilderRef LLVMCreateDIBuilder ( LLVMModuleRef  M)

Construct a builder for a module and collect unresolved nodes attached to the module in order to resolve cycles during a call to LLVMDIBuilderFinalize.

Definition at line 1044 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMCreateDIBuilderDisallowUnresolved()

LLVMDIBuilderRef LLVMCreateDIBuilderDisallowUnresolved ( LLVMModuleRef  M)

Construct a builder for a module, and do not allow for unresolved nodes attached to the module.

Definition at line 1040 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDebugMetadataVersion()

unsigned LLVMDebugMetadataVersion ( void  )

The current debug metadata version number.

Definition at line 1036 of file DebugInfo.cpp.

References llvm::DEBUG_METADATA_VERSION.

◆ LLVMDIBuilderCreateArrayType()

LLVMMetadataRef LLVMDIBuilderCreateArrayType ( LLVMDIBuilderRef  Builder,
uint64_t  Size,
uint32_t  AlignInBits,
LLVMMetadataRef  Ty,
LLVMMetadataRef Subscripts,
unsigned  NumSubscripts 
)

Create debugging information entry for an array.

Parameters
BuilderThe DIBuilder.
SizeArray size.
AlignInBitsAlignment.
TyElement type.
SubscriptsSubscripts.
NumSubscriptsNumber of subscripts.

Definition at line 1307 of file DebugInfo.cpp.

References Size, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateArtificialType()

LLVMMetadataRef LLVMDIBuilderCreateArtificialType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Type 
)

Create a uniqued DIType* clone with FlagArtificial set.

Parameters
BuilderThe DIBuilder.
TypeThe underlying type.

Definition at line 1538 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateAutoVariable()

LLVMMetadataRef LLVMDIBuilderCreateAutoVariable ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  AlwaysPreserve,
LLVMDIFlags  Flags,
uint32_t  AlignInBits 
)

Create a new descriptor for a local auto variable.

Parameters
BuilderThe DIBuilder.
ScopeThe local scope the variable is declared in.
NameVariable name.
NameLenLength of variable name.
FileFile where this variable is defined.
LineNoLine number.
TyMetadata describing the type of the variable.
AlwaysPreserveIf true, this descriptor will survive optimizations.
FlagsFlags.
AlignInBitsVariable alignment.

Definition at line 1730 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateBasicType()

LLVMMetadataRef LLVMDIBuilderCreateBasicType ( LLVMDIBuilderRef  Builder,
const char Name,
size_t  NameLen,
uint64_t  SizeInBits,
LLVMDWARFTypeEncoding  Encoding,
LLVMDIFlags  Flags 
)

Create debugging information entry for a basic type.

Parameters
BuilderThe DIBuilder.
NameType name.
NameLenLength of type name.
SizeInBitsSize of the type.
EncodingDWARF encoding code, e.g. LLVMDWARFTypeEncoding_float.
FlagsFlags to encode optional attribute like endianity

Definition at line 1329 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateBitFieldMemberType()

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 
)

Create debugging information entry for a bit field member.

Parameters
BuilderThe DIBuilder.
ScopeMember scope.
NameMember name.
NameLenLength of member name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
OffsetInBitsMember offset.
StorageOffsetInBitsMember storage offset.
FlagsFlags to encode member attribute.
TypeParent type.

Definition at line 1503 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateClassType()

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 
)

Create debugging information entry for a class.

Parameters
ScopeScope in which this class is defined.
NameClass name.
NameLenThe length of the C string passed to Name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
OffsetInBitsMember offset.
FlagsFlags to encode member attribute, e.g. private.
DerivedFromDebug info of the base class of this type.
ElementsClass members.
NumElementsNumber of class elements.
VTableHolderDebug 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.
TemplateParamsNodeTemplate type parameters.
UniqueIdentifierA unique identifier for the type.
UniqueIdentifierLenLength of the unique identifier.

Definition at line 1518 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateCompileUnit()

LLVMMetadataRef LLVMDIBuilderCreateCompileUnit ( LLVMDIBuilderRef  Builder,
LLVMDWARFSourceLanguage  Lang,
LLVMMetadataRef  FileRef,
const char Producer,
size_t  ProducerLen,
LLVMBool  isOptimized,
const char Flags,
size_t  FlagsLen,
unsigned  RuntimeVer,
const char SplitName,
size_t  SplitNameLen,
LLVMDWARFEmissionKind  Kind,
unsigned  DWOId,
LLVMBool  SplitDebugInlining,
LLVMBool  DebugInfoForProfiling,
const char SysRoot,
size_t  SysRootLen,
const char SDK,
size_t  SDKLen 
)

A CompileUnit provides an anchor for all debugging information generated during this instance of compilation.

Parameters
LangSource programming language, eg. LLVMDWARFSourceLanguageC99
FileRefFile info.
ProducerIdentify the producer of debugging information and code. Usually this is a compiler version string.
ProducerLenThe length of the C string passed to Producer.
isOptimizedA boolean flag which indicates whether optimization is enabled or not.
FlagsThis string lists command line options. This string is directly embedded in debug info output which may be used by a tool analyzing generated debugging information.
FlagsLenThe length of the C string passed to Flags.
RuntimeVerThis indicates runtime version for languages like Objective-C.
SplitNameThe name of the file that we'll split debug info out into.
SplitNameLenThe length of the C string passed to SplitName.
KindThe kind of debug information to generate.
DWOIdThe DWOId if this is a split skeleton compile unit.
SplitDebugInliningWhether to emit inline debug info.
DebugInfoForProfilingWhether to emit extra debug info for profile collection.
SysRootThe Clang system root (value of -isysroot).
SysRootLenThe length of the C string passed to SysRoot.
SDKThe SDK. On Darwin, the last component of the sysroot.
SDKLenThe length of the C string passed to SDK.

Definition at line 1069 of file DebugInfo.cpp.

References llvm::DICompileUnit::Default, map_from_llvmDWARFsourcelanguage(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateConstantValueExpression()

LLVMMetadataRef LLVMDIBuilderCreateConstantValueExpression ( LLVMDIBuilderRef  Builder,
uint64_t  Value 
)

Create a new descriptor for the specified variable that does not have an address, but does have a constant value.

Parameters
BuilderThe DIBuilder.
ValueThe constant value.

Definition at line 1599 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateDebugLocation()

LLVMMetadataRef LLVMDIBuilderCreateDebugLocation ( LLVMContextRef  Ctx,
unsigned  Line,
unsigned  Column,
LLVMMetadataRef  Scope,
LLVMMetadataRef  InlinedAt 
)

Creates a new DebugLocation that describes a source location.

Parameters
LineThe line in the source file.
ColumnThe column in the source file.
ScopeThe scope in which the location resides.
InlinedAtThe scope where this location was inlined, if at all. (optional).
Note
If the item to which this location is attached cannot be attributed to a source line, pass 0 for the line and column.

Definition at line 1203 of file DebugInfo.cpp.

References llvm::MDNode::get(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateEnumerationType()

LLVMMetadataRef LLVMDIBuilderCreateEnumerationType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMMetadataRef Elements,
unsigned  NumElements,
LLVMMetadataRef  ClassTy 
)

Create debugging information entry for an enumeration.

Parameters
BuilderThe DIBuilder.
ScopeScope in which this enumeration is defined.
NameEnumeration name.
NameLenLength of enumeration name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
ElementsEnumeration elements.
NumElementsNumber of enumeration elements.
ClassTyUnderlying type of a C++11/ObjC fixed enum.

Definition at line 1279 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateEnumerator()

LLVMMetadataRef LLVMDIBuilderCreateEnumerator ( LLVMDIBuilderRef  Builder,
const char Name,
size_t  NameLen,
int64_t  Value,
LLVMBool  IsUnsigned 
)

Create debugging information entry for an enumerator.

Parameters
BuilderThe DIBuilder.
NameEnumerator name.
NameLenLength of enumerator name.
ValueEnumerator value.
IsUnsignedTrue if the value is unsigned.

Definition at line 1271 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateExpression()

LLVMMetadataRef LLVMDIBuilderCreateExpression ( LLVMDIBuilderRef  Builder,
uint64_t Addr,
size_t  Length 
)

Create a new descriptor for the specified variable which has a complex address expression for its address.

Parameters
BuilderThe DIBuilder.
AddrAn array of complex address operations.
LengthLength of the address operation array.

Definition at line 1592 of file DebugInfo.cpp.

References Addr, llvm::Length, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateFile()

LLVMMetadataRef LLVMDIBuilderCreateFile ( LLVMDIBuilderRef  Builder,
const char Filename,
size_t  FilenameLen,
const char Directory,
size_t  DirectoryLen 
)

Create a file descriptor to hold debugging information for a file.

Parameters
BuilderThe DIBuilder.
FilenameFile name.
FilenameLenThe length of the C string passed to Filename.
DirectoryDirectory.
DirectoryLenThe length of the C string passed to Directory.

Definition at line 1090 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateForwardDecl()

LLVMMetadataRef LLVMDIBuilderCreateForwardDecl ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
const char Name,
size_t  NameLen,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Line,
unsigned  RuntimeLang,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
const char UniqueIdentifier,
size_t  UniqueIdentifierLen 
)

Create a permanent forward-declared type.

Parameters
BuilderThe DIBuilder.
TagA unique tag for this type.
NameType name.
NameLenLength of type name.
ScopeType scope.
FileFile where this type is defined.
LineLine number where this type is defined.
RuntimeLangIndicates runtime version for languages like Objective-C.
SizeInBitsMember size.
AlignInBitsMember alignment.
UniqueIdentifierA unique identifier for the type.
UniqueIdentifierLenLength of the unique identifier.

Definition at line 1445 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateFunction()

LLVMMetadataRef LLVMDIBuilderCreateFunction ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
const char LinkageName,
size_t  LinkageNameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  IsLocalToUnit,
LLVMBool  IsDefinition,
unsigned  ScopeLine,
LLVMDIFlags  Flags,
LLVMBool  IsOptimized 
)

Create a new descriptor for the specified subprogram.

Parameters
BuilderThe DIBuilder.
ScopeFunction scope.
NameFunction name.
NameLenLength of enumeration name.
LinkageNameMangled function name.
LinkageNameLenLength of linkage name.
FileFile where this variable is defined.
LineNoLine number.
TyFunction type.
IsLocalToUnitTrue if this function is not externally visible.
IsDefinitionTrue if this is a function definition.
ScopeLineSet to the beginning of the scope this starts
FlagsE.g.: LLVMDIFlagLValueReference. These flags are used to emit dwarf attributes.
IsOptimizedTrue if optimization is ON.

Definition at line 1118 of file DebugInfo.cpp.

References llvm::LinkageName, map_from_llvmDIFlags(), Name, pack_into_DISPFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateGlobalVariableExpression()

LLVMMetadataRef LLVMDIBuilderCreateGlobalVariableExpression ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
const char Linkage,
size_t  LinkLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  LocalToUnit,
LLVMMetadataRef  Expr,
LLVMMetadataRef  Decl,
uint32_t  AlignInBits 
)

Create a new descriptor for the specified variable.

Parameters
ScopeVariable scope.
NameName of the variable.
NameLenThe length of the C string passed to Name.
LinkageMangled name of the variable.
LinkLenThe length of the C string passed to Linkage.
FileFile where this variable is defined.
LineNoLine number.
TyVariable Type.
LocalToUnitBoolean flag indicate whether this variable is externally visible or not.
ExprThe location of the global relative to the attached GlobalVariable.
DeclReference to the corresponding declaration. variables.
AlignInBitsVariable alignment(or 0 if no alignment attr was specified)

Definition at line 1604 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedDeclaration()

LLVMMetadataRef LLVMDIBuilderCreateImportedDeclaration ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  Decl,
LLVMMetadataRef  File,
unsigned  Line,
const char Name,
size_t  NameLen,
LLVMMetadataRef Elements,
unsigned  NumElements 
)

Create a descriptor for an imported function, type, or variable.

Suitable for e.g. FORTRAN-style USE declarations.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into.
DeclThe declaration (or definition) of a function, type, or variable.
FileFile where the declaration is located.
LineLine number of the declaration.
NameA name that uniquely identifies this imported declaration.
NameLenThe length of the C string passed to Name.
ElementsRenamed elements.
NumElementsNumber of renamed elements.

Definition at line 1189 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedModuleFromAlias()

LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromAlias ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  ImportedEntity,
LLVMMetadataRef  File,
unsigned  Line,
LLVMMetadataRef Elements,
unsigned  NumElements 
)

Create a descriptor for an imported module that aliases another imported entity descriptor.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into
ImportedEntityPrevious imported entity to alias.
FileFile where the declaration is located.
LineLine number of the declaration.
ElementsRenamed elements.
NumElementsNumber of renamed elements.

Definition at line 1163 of file DebugInfo.cpp.

References createImportedModule(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedModuleFromModule()

LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromModule ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  M,
LLVMMetadataRef  File,
unsigned  Line,
LLVMMetadataRef Elements,
unsigned  NumElements 
)

Create a descriptor for an imported module.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into
MThe module being imported here
FileFile where the declaration is located.
LineLine number of the declaration.
ElementsRenamed elements.
NumElementsNumber of renamed elements.

Definition at line 1176 of file DebugInfo.cpp.

References createImportedModule(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateImportedModuleFromNamespace()

LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromNamespace ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  NS,
LLVMMetadataRef  File,
unsigned  Line 
)

Create a descriptor for an imported namespace.

Suitable for e.g. C++ using declarations.

Parameters
BuilderThe DIBuilder.
ScopeThe scope this module is imported into
FileFile where the declaration is located.
LineLine number of the declaration.

Definition at line 1152 of file DebugInfo.cpp.

References createImportedModule(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateInheritance()

LLVMMetadataRef LLVMDIBuilderCreateInheritance ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Ty,
LLVMMetadataRef  BaseTy,
uint64_t  BaseOffset,
uint32_t  VBPtrOffset,
LLVMDIFlags  Flags 
)

Create debugging information entry to establish inheritance relationship between two types.

Parameters
BuilderThe DIBuilder.
TyOriginal type.
BaseTyBase type. Ty is inherits from base.
BaseOffsetBase offset.
VBPtrOffsetVirtual base pointer offset.
FlagsFlags to describe inheritance attribute, e.g. private

Definition at line 1435 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateLexicalBlock()

LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Line,
unsigned  Column 
)

Create a descriptor for a lexical block with the specified parent context.

Parameters
BuilderThe DIBuilder.
ScopeParent lexical block.
FileSource file.
LineThe line in the source file.
ColumnThe column in the source file.

Definition at line 1133 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateLexicalBlockFile()

LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Discriminator 
)

Create a descriptor for a lexical block with a new file attached.

Parameters
BuilderThe DIBuilder.
ScopeLexical block.
FileSource file.
DiscriminatorDWARF path discriminator value.

Definition at line 1142 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateMacro()

LLVMMetadataRef LLVMDIBuilderCreateMacro ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  ParentMacroFile,
unsigned  Line,
LLVMDWARFMacinfoRecordType  RecordType,
const char Name,
size_t  NameLen,
const char Value,
size_t  ValueLen 
)

Create debugging information entry for a macro.

Parameters
BuilderThe DIBuilder.
ParentMacroFileMacro parent (could be NULL).
LineSource line number where the macro is defined.
RecordTypeDW_MACINFO_define or DW_MACINFO_undef.
NameMacro name.
NameLenMacro name length.
ValueMacro value.
ValueLenMacro value length.

Definition at line 1251 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateMemberPointerType()

LLVMMetadataRef LLVMDIBuilderCreateMemberPointerType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  PointeeType,
LLVMMetadataRef  ClassType,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags 
)

Create debugging information entry for a pointer to member.

Parameters
BuilderThe DIBuilder.
PointeeTypeType pointed to by this pointer.
ClassTypeType for which this pointer points to members of.
SizeInBitsSize.
AlignInBitsAlignment.
FlagsFlags.

Definition at line 1490 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateMemberType()

LLVMMetadataRef LLVMDIBuilderCreateMemberType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
uint64_t  OffsetInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef  Ty 
)

Create debugging information entry for a member.

Parameters
BuilderThe DIBuilder.
ScopeMember scope.
NameMember name.
NameLenLength of member name.
FileFile where this member is defined.
LineNoLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
OffsetInBitsMember offset.
FlagsFlags to encode member attribute, e.g. private
TyParent type.

Definition at line 1363 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateModule()

LLVMMetadataRef LLVMDIBuilderCreateModule ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  ParentScope,
const char Name,
size_t  NameLen,
const char ConfigMacros,
size_t  ConfigMacrosLen,
const char IncludePath,
size_t  IncludePathLen,
const char APINotesFile,
size_t  APINotesFileLen 
)

Creates a new descriptor for a module with the specified parent scope.

Parameters
BuilderThe DIBuilder.
ParentScopeThe parent scope containing this module declaration.
NameModule name.
NameLenThe length of the C string passed to Name.
ConfigMacrosA space-separated shell-quoted list of -D macro definitions as they would appear on a command line.
ConfigMacrosLenThe length of the C string passed to ConfigMacros.
IncludePathThe path to the module map file.
IncludePathLenThe length of the C string passed to IncludePath.
APINotesFileThe path to an API notes file for the module.
APINotesFileLenThe length of the C string passed to APINotestFile.

Definition at line 1098 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateNameSpace()

LLVMMetadataRef LLVMDIBuilderCreateNameSpace ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  ParentScope,
const char Name,
size_t  NameLen,
LLVMBool  ExportSymbols 
)

Creates a new descriptor for a namespace with the specified parent scope.

Parameters
BuilderThe DIBuilder.
ParentScopeThe parent scope containing this module declaration.
NameNameSpace name.
NameLenThe length of the C string passed to Name.
ExportSymbolsWhether or not the namespace exports symbols, e.g. this is true of C++ inline namespaces.

Definition at line 1110 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateNullPtrType()

LLVMMetadataRef LLVMDIBuilderCreateNullPtrType ( LLVMDIBuilderRef  Builder)

Create C++11 nullptr type.

Parameters
BuilderThe DIBuilder.

Definition at line 1485 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateObjCIVar()

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 instance variable.

Parameters
BuilderThe DIBuilder.
NameMember name.
NameLenThe length of the C string passed to Name.
FileFile where this member is defined.
LineNoLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
OffsetInBitsMember offset.
FlagsFlags to encode member attribute, e.g. private
TyParent type.
PropertyNodeProperty associated with this ivar.

Definition at line 1391 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateObjCProperty()

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 debugging information entry for Objective-C property.

Parameters
BuilderThe DIBuilder.
NameProperty name.
NameLenThe length of the C string passed to Name.
FileFile where this property is defined.
LineNoLine number.
GetterNameName of the Objective C property getter selector.
GetterNameLenThe length of the C string passed to GetterName.
SetterNameName of the Objective C property setter selector.
SetterNameLenThe length of the C string passed to SetterName.
PropertyAttributesObjective C property attributes.
TyType.

Definition at line 1405 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateObjectPointerType()

LLVMMetadataRef LLVMDIBuilderCreateObjectPointerType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Type 
)

Create a uniqued DIType* clone with FlagObjectPointer and FlagArtificial set.

Parameters
BuilderThe DIBuilder.
TypeThe underlying type to which this pointer points.

Definition at line 1419 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateParameterVariable()

LLVMMetadataRef LLVMDIBuilderCreateParameterVariable ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
unsigned  ArgNo,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  AlwaysPreserve,
LLVMDIFlags  Flags 
)

Create a new descriptor for a function parameter variable.

Parameters
BuilderThe DIBuilder.
ScopeThe local scope the variable is declared in.
NameVariable name.
NameLenLength of variable name.
ArgNoUnique argument number for this variable; starts at 1.
FileFile where this variable is defined.
LineNoLine number.
TyMetadata describing the type of the variable.
AlwaysPreserveIf true, this descriptor will survive optimizations.
FlagsFlags.

Definition at line 1740 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreatePointerType()

LLVMMetadataRef LLVMDIBuilderCreatePointerType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  PointeeTy,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
unsigned  AddressSpace,
const char Name,
size_t  NameLen 
)

Create debugging information entry for a pointer.

Parameters
BuilderThe DIBuilder.
PointeeTyType pointed by this pointer.
SizeInBitsSize.
AlignInBitsAlignment. (optional, pass 0 to ignore)
AddressSpaceDWARF address space. (optional, pass 0 to ignore)
NamePointer type name. (optional)
NameLenLength of pointer type name. (optional)

Definition at line 1338 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateQualifiedType()

LLVMMetadataRef LLVMDIBuilderCreateQualifiedType ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
LLVMMetadataRef  Type 
)

Create debugging information entry for a qualified type, e.g.

'const int'.

Parameters
BuilderThe DIBuilder.
TagTag identifying type, e.g. LLVMDWARFTypeQualifier_volatile_type
TypeBase Type.

Definition at line 1471 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateReferenceType()

LLVMMetadataRef LLVMDIBuilderCreateReferenceType ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
LLVMMetadataRef  Type 
)

Create debugging information entry for a c++ style reference or rvalue reference type.

Parameters
BuilderThe DIBuilder.
TagTag identifying type,
TypeBase Type.

Definition at line 1478 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateReplaceableCompositeType()

LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType ( LLVMDIBuilderRef  Builder,
unsigned  Tag,
const char Name,
size_t  NameLen,
LLVMMetadataRef  Scope,
LLVMMetadataRef  File,
unsigned  Line,
unsigned  RuntimeLang,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags,
const char UniqueIdentifier,
size_t  UniqueIdentifierLen 
)

Create a temporary forward-declared type.

Parameters
BuilderThe DIBuilder.
TagA unique tag for this type.
NameType name.
NameLenLength of type name.
ScopeType scope.
FileFile where this type is defined.
LineLine number where this type is defined.
RuntimeLangIndicates runtime version for languages like Objective-C.
SizeInBitsMember size.
AlignInBitsMember alignment.
FlagsFlags.
UniqueIdentifierA unique identifier for the type.
UniqueIdentifierLenLength of the unique identifier.

Definition at line 1457 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateStaticMemberType()

LLVMMetadataRef LLVMDIBuilderCreateStaticMemberType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
LLVMMetadataRef  Type,
LLVMDIFlags  Flags,
LLVMValueRef  ConstantVal,
uint32_t  AlignInBits 
)

Create debugging information entry for a C++ static data member.

Parameters
BuilderThe DIBuilder.
ScopeMember scope.
NameMember name.
NameLenLength of member name.
FileFile where this member is declared.
LineNumberLine number.
TypeType of the static member.
FlagsFlags to encode member attribute, e.g. private.
ConstantValConst initializer of the member.
AlignInBitsMember alignment.

Definition at line 1379 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateStructType()

LLVMMetadataRef LLVMDIBuilderCreateStructType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef  DerivedFrom,
LLVMMetadataRef Elements,
unsigned  NumElements,
unsigned  RunTimeLang,
LLVMMetadataRef  VTableHolder,
const char UniqueId,
size_t  UniqueIdLen 
)

Create debugging information entry for a struct.

Parameters
BuilderThe DIBuilder.
ScopeScope in which this struct is defined.
NameStruct name.
NameLenStruct name length.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
FlagsFlags to encode member attribute, e.g. private
ElementsStruct elements.
NumElementsNumber of struct elements.
RunTimeLangOptional parameter, Objective-C runtime version.
VTableHolderThe object containing the vtable for the struct.
UniqueIdA unique identifier for the struct.
UniqueIdLenLength of the unique identifier for the struct.

Definition at line 1347 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateSubroutineType()

LLVMMetadataRef LLVMDIBuilderCreateSubroutineType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  File,
LLVMMetadataRef ParameterTypes,
unsigned  NumParameterTypes,
LLVMDIFlags  Flags 
)

Create subroutine type.

Parameters
BuilderThe DIBuilder.
FileThe file in which the subroutine resides.
ParameterTypesAn array of subroutine parameter types. This includes return type at 0th index.
NumParameterTypesThe number of parameter types in ParameterTypes
FlagsE.g.: LLVMDIFlagLValueReference. These flags are used to emit dwarf attributes.

Definition at line 1581 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateTempGlobalVariableFwdDecl()

LLVMMetadataRef LLVMDIBuilderCreateTempGlobalVariableFwdDecl ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
const char Linkage,
size_t  LnkLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Ty,
LLVMBool  LocalToUnit,
LLVMMetadataRef  Decl,
uint32_t  AlignInBits 
)

Create a new descriptor for the specified global variable that is temporary and meant to be RAUWed.

Parameters
ScopeVariable scope.
NameName of the variable.
NameLenThe length of the C string passed to Name.
LinkageMangled name of the variable.
LnkLenThe length of the C string passed to Linkage.
FileFile where this variable is defined.
LineNoLine number.
TyVariable Type.
LocalToUnitBoolean flag indicate whether this variable is externally visible or not.
DeclReference to the corresponding declaration.
AlignInBitsVariable alignment(or 0 if no alignment attr was specified)

Definition at line 1654 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateTempMacroFile()

LLVMMetadataRef LLVMDIBuilderCreateTempMacroFile ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  ParentMacroFile,
unsigned  Line,
LLVMMetadataRef  File 
)

Create debugging information temporary entry for a macro file.

List of macro node direct children will be calculated by DIBuilder, using the ParentMacroFile relationship.

Parameters
BuilderThe DIBuilder.
ParentMacroFileMacro parent (could be NULL).
LineSource line number where the macro file is included.
FileFile descriptor containing the name of the macro file.

Definition at line 1264 of file DebugInfo.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateTypedef()

LLVMMetadataRef LLVMDIBuilderCreateTypedef ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Type,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNo,
LLVMMetadataRef  Scope,
uint32_t  AlignInBits 
)

Create debugging information entry for a typedef.

Parameters
BuilderThe DIBuilder.
TypeOriginal type.
NameTypedef name.
FileFile where this type is defined.
LineNoLine number.
ScopeThe surrounding context for the typedef.

Definition at line 1425 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateUnionType()

LLVMMetadataRef LLVMDIBuilderCreateUnionType ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Scope,
const char Name,
size_t  NameLen,
LLVMMetadataRef  File,
unsigned  LineNumber,
uint64_t  SizeInBits,
uint32_t  AlignInBits,
LLVMDIFlags  Flags,
LLVMMetadataRef Elements,
unsigned  NumElements,
unsigned  RunTimeLang,
const char UniqueId,
size_t  UniqueIdLen 
)

Create debugging information entry for a union.

Parameters
BuilderThe DIBuilder.
ScopeScope in which this union is defined.
NameUnion name.
NameLenLength of union name.
FileFile where this member is defined.
LineNumberLine number.
SizeInBitsMember size.
AlignInBitsMember alignment.
FlagsFlags to encode member attribute, e.g. private
ElementsUnion elements.
NumElementsNumber of union elements.
RunTimeLangOptional parameter, Objective-C runtime version.
UniqueIdA unique identifier for the union.
UniqueIdLenLength of unique identifier.

Definition at line 1291 of file DebugInfo.cpp.

References map_from_llvmDIFlags(), Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateUnspecifiedType()

LLVMMetadataRef LLVMDIBuilderCreateUnspecifiedType ( LLVMDIBuilderRef  Builder,
const char Name,
size_t  NameLen 
)

Create a DWARF unspecified type.

Parameters
BuilderThe DIBuilder.
NameThe unspecified type's name.
NameLenLength of type name.

Definition at line 1374 of file DebugInfo.cpp.

References Name, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderCreateVectorType()

LLVMMetadataRef LLVMDIBuilderCreateVectorType ( LLVMDIBuilderRef  Builder,
uint64_t  Size,
uint32_t  AlignInBits,
LLVMMetadataRef  Ty,
LLVMMetadataRef Subscripts,
unsigned  NumSubscripts 
)

Create debugging information entry for a vector type.

Parameters
BuilderThe DIBuilder.
SizeVector size.
AlignInBitsAlignment.
TyElement type.
SubscriptsSubscripts.
NumSubscriptsNumber of subscripts.

Definition at line 1318 of file DebugInfo.cpp.

References Size, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderFinalize()

void LLVMDIBuilderFinalize ( LLVMDIBuilderRef  Builder)

Construct any deferred debug info descriptors.

Definition at line 1060 of file DebugInfo.cpp.

References llvm::unwrap().

◆ LLVMDIBuilderFinalizeSubprogram()

void LLVMDIBuilderFinalizeSubprogram ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef  Subprogram 
)

Finalize a specific subprogram.

No new variables may be added to this subprogram afterwards.

Definition at line 1064 of file DebugInfo.cpp.

References llvm::unwrap().

◆ LLVMDIBuilderGetOrCreateArray()

LLVMMetadataRef LLVMDIBuilderGetOrCreateArray ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef Data,
size_t  NumElements 
)

Create an array of DI Nodes.

Parameters
BuilderThe DIBuilder.
DataThe DI Node elements.
NumElementsNumber of DI Node elements.

Definition at line 1755 of file DebugInfo.cpp.

References llvm::Data, llvm::get(), llvm::Length, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderGetOrCreateSubrange()

LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange ( LLVMDIBuilderRef  Builder,
int64_t  LowerBound,
int64_t  Count 
)

Create a descriptor for a value range.

Parameters
BuilderThe DIBuilder.
LowerBoundLower bound of the subrange, e.g. 0 for C, 1 for Fortran.
CountCount of elements in the subrange.

Definition at line 1750 of file DebugInfo.cpp.

References llvm::Lo, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderGetOrCreateTypeArray()

LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray ( LLVMDIBuilderRef  Builder,
LLVMMetadataRef Data,
size_t  NumElements 
)

Create a type array.

Parameters
BuilderThe DIBuilder.
DataThe type elements.
NumElementsNumber of type elements.

Definition at line 1573 of file DebugInfo.cpp.

References llvm::get(), llvm::Length, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDbgValueRecordAtEnd()

LLVMDbgRecordRef LLVMDIBuilderInsertDbgValueRecordAtEnd ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Val,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMBasicBlockRef  Block 
)

Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

The debug format can be switched later after inserting the records using LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

Insert a new debug record at the end of the given basic block. If the basic block has a terminator instruction, the record is inserted before that terminator instruction.

Parameters
BuilderThe DIBuilder.
ValThe value of the variable.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
BlockBasic block acting as a location for the new record.

Definition at line 1714 of file DebugInfo.cpp.

References assert(), llvm::Block, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDbgValueRecordBefore()

LLVMDbgRecordRef LLVMDIBuilderInsertDbgValueRecordBefore ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Val,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMValueRef  Instr 
)

Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

The debug format can be switched later after inserting the records using LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

Insert a new debug record before the given instruction.

Parameters
BuilderThe DIBuilder.
ValThe value of the variable.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
InstrInstruction acting as a location for the new record.

Definition at line 1698 of file DebugInfo.cpp.

References assert(), llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDeclareRecordAtEnd()

LLVMDbgRecordRef LLVMDIBuilderInsertDeclareRecordAtEnd ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Storage,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMBasicBlockRef  Block 
)

Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

The debug format can be switched later after inserting the records using LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

Insert a Declare DbgRecord at the end of the given basic block. If the basic block has a terminator instruction, the record is inserted before that terminator instruction.

Parameters
BuilderThe DIBuilder.
StorageThe storage of the variable to declare.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
BlockBasic block acting as a location for the new record.

Definition at line 1682 of file DebugInfo.cpp.

References assert(), llvm::Block, DL, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIBuilderInsertDeclareRecordBefore()

LLVMDbgRecordRef LLVMDIBuilderInsertDeclareRecordBefore ( LLVMDIBuilderRef  Builder,
LLVMValueRef  Storage,
LLVMMetadataRef  VarInfo,
LLVMMetadataRef  Expr,
LLVMMetadataRef  DebugLoc,
LLVMValueRef  Instr 
)

Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

The debug format can be switched later after inserting the records using LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

Insert a Declare DbgRecord before the given instruction.

Parameters
BuilderThe DIBuilder.
StorageThe storage of the variable to declare.
VarInfoThe variable's debug info descriptor.
ExprA complex location expression for the variable.
DebugLocDebug info location.
InstrInstruction acting as a location for the new record.

Definition at line 1665 of file DebugInfo.cpp.

References assert(), DL, llvm::unwrap(), and llvm::wrap().

◆ LLVMDIFileGetDirectory()

const char * LLVMDIFileGetDirectory ( LLVMMetadataRef  File,
unsigned Len 
)

Get the directory of a given file.

Parameters
FileThe file object.
LenThe length of the returned string.
See also
DIFile::getDirectory()

Definition at line 1230 of file DebugInfo.cpp.

◆ LLVMDIFileGetFilename()

const char * LLVMDIFileGetFilename ( LLVMMetadataRef  File,
unsigned Len 
)

Get the name of a given file.

Parameters
FileThe file object.
LenThe length of the returned string.
See also
DIFile::getFilename()

Definition at line 1236 of file DebugInfo.cpp.

References Name.

◆ LLVMDIFileGetSource()

const char * LLVMDIFileGetSource ( LLVMMetadataRef  File,
unsigned Len 
)

Get the source of a given file.

Parameters
FileThe file object.
LenThe length of the returned string.
See also
DIFile::getSource()

Definition at line 1242 of file DebugInfo.cpp.

◆ LLVMDIGlobalVariableExpressionGetExpression()

LLVMMetadataRef LLVMDIGlobalVariableExpressionGetExpression ( LLVMMetadataRef  GVE)

Retrieves the DIExpression associated with this global variable expression.

Parameters
GVEThe global variable expression.
See also
llvm::DIGlobalVariableExpression::getExpression()

Definition at line 1620 of file DebugInfo.cpp.

References llvm::wrap().

◆ LLVMDIGlobalVariableExpressionGetVariable()

LLVMMetadataRef LLVMDIGlobalVariableExpressionGetVariable ( LLVMMetadataRef  GVE)

Retrieves the DIVariable associated with this global variable expression.

Parameters
GVEThe global variable expression.
See also
llvm::DIGlobalVariableExpression::getVariable()

Definition at line 1616 of file DebugInfo.cpp.

References llvm::wrap().

◆ LLVMDILocationGetColumn()

unsigned LLVMDILocationGetColumn ( LLVMMetadataRef  Location)

Get the column number of this debug location.

Parameters
LocationThe debug location.
See also
DILocation::getColumn()

Definition at line 1214 of file DebugInfo.cpp.

◆ LLVMDILocationGetInlinedAt()

LLVMMetadataRef LLVMDILocationGetInlinedAt ( LLVMMetadataRef  Location)

Get the "inline at" location associated with this debug location.

Parameters
LocationThe debug location.
See also
DILocation::getInlinedAt()

Definition at line 1222 of file DebugInfo.cpp.

References llvm::wrap().

◆ LLVMDILocationGetLine()

unsigned LLVMDILocationGetLine ( LLVMMetadataRef  Location)

Get the line number of this debug location.

Parameters
LocationThe debug location.
See also
DILocation::getLine()

Definition at line 1210 of file DebugInfo.cpp.

◆ LLVMDILocationGetScope()

LLVMMetadataRef LLVMDILocationGetScope ( LLVMMetadataRef  Location)

Get the local scope associated with this debug location.

Parameters
LocationThe debug location.
See also
DILocation::getScope()

Definition at line 1218 of file DebugInfo.cpp.

References getScope(), and llvm::wrap().

◆ LLVMDIScopeGetFile()

LLVMMetadataRef LLVMDIScopeGetFile ( LLVMMetadataRef  Scope)

Get the metadata of the file associated with a given scope.

Parameters
ScopeThe scope object.
See also
DIScope::getFile()

Definition at line 1226 of file DebugInfo.cpp.

References llvm::wrap().

◆ LLVMDisposeDIBuilder()

void LLVMDisposeDIBuilder ( LLVMDIBuilderRef  Builder)

Deallocates the DIBuilder and everything it owns.

Note
You must call LLVMDIBuilderFinalize before this

Definition at line 1056 of file DebugInfo.cpp.

References llvm::unwrap().

◆ LLVMDisposeTemporaryMDNode()

void LLVMDisposeTemporaryMDNode ( LLVMMetadataRef  TempNode)

Deallocate a temporary node.

Calls replaceAllUsesWith(nullptr) before deleting, so any remaining references will be reset.

Parameters
TempNodeThe temporary metadata node.

Definition at line 1643 of file DebugInfo.cpp.

References llvm::MDNode::deleteTemporary().

◆ LLVMDISubprogramGetLine()

unsigned LLVMDISubprogramGetLine ( LLVMMetadataRef  Subprogram)

Get the line associated with a given subprogram.

Parameters
SubprogramThe subprogram object.
See also
DISubprogram::getLine()

Definition at line 1770 of file DebugInfo.cpp.

◆ LLVMDITypeGetAlignInBits()

uint32_t LLVMDITypeGetAlignInBits ( LLVMMetadataRef  DType)

Get the alignment of this DIType in bits.

Parameters
DTypeThe DIType.
See also
DIType::getAlignInBits()

Definition at line 1561 of file DebugInfo.cpp.

◆ LLVMDITypeGetFlags()

LLVMDIFlags LLVMDITypeGetFlags ( LLVMMetadataRef  DType)

Get the flags associated with this DIType.

Parameters
DTypeThe DIType.
See also
DIType::getFlags()

Definition at line 1569 of file DebugInfo.cpp.

References getFlags(), and map_to_llvmDIFlags().

◆ LLVMDITypeGetLine()

unsigned LLVMDITypeGetLine ( LLVMMetadataRef  DType)

Get the source line where this DIType is declared.

Parameters
DTypeThe DIType.
See also
DIType::getLine()

Definition at line 1565 of file DebugInfo.cpp.

◆ LLVMDITypeGetName()

const char * LLVMDITypeGetName ( LLVMMetadataRef  DType,
size_t *  Length 
)

Get the name of this DIType.

Parameters
DTypeThe DIType.
LengthThe length of the returned string.
See also
DIType::getName()

Definition at line 1547 of file DebugInfo.cpp.

References llvm::Length.

◆ LLVMDITypeGetOffsetInBits()

uint64_t LLVMDITypeGetOffsetInBits ( LLVMMetadataRef  DType)

Get the offset of this DIType in bits.

Parameters
DTypeThe DIType.
See also
DIType::getOffsetInBits()

Definition at line 1557 of file DebugInfo.cpp.

◆ LLVMDITypeGetSizeInBits()

uint64_t LLVMDITypeGetSizeInBits ( LLVMMetadataRef  DType)

Get the size of this DIType in bits.

Parameters
DTypeThe DIType.
See also
DIType::getSizeInBits()

Definition at line 1553 of file DebugInfo.cpp.

◆ LLVMDIVariableGetFile()

LLVMMetadataRef LLVMDIVariableGetFile ( LLVMMetadataRef  Var)

Get the metadata of the file associated with a given variable.

Parameters
VarThe variable object.
See also
DIVariable::getFile()

Definition at line 1625 of file DebugInfo.cpp.

References llvm::wrap().

◆ LLVMDIVariableGetLine()

unsigned LLVMDIVariableGetLine ( LLVMMetadataRef  Var)

Get the source line where this DIVariable is declared.

Parameters
VarThe DIVariable.
See also
DIVariable::getLine()

Definition at line 1633 of file DebugInfo.cpp.

◆ LLVMDIVariableGetScope()

LLVMMetadataRef LLVMDIVariableGetScope ( LLVMMetadataRef  Var)

Get the metadata of the scope associated with a given variable.

Parameters
VarThe variable object.
See also
DIVariable::getScope()

Definition at line 1629 of file DebugInfo.cpp.

References getScope(), and llvm::wrap().

◆ LLVMGetDINodeTag()

uint16_t LLVMGetDINodeTag ( LLVMMetadataRef  MD)

Get the dwarf::Tag of a DINode.

Definition at line 1543 of file DebugInfo.cpp.

◆ LLVMGetMetadataKind()

LLVMMetadataKind LLVMGetMetadataKind ( LLVMMetadataRef  Metadata)

Obtain the enumerated type of a Metadata instance.

See also
llvm::Metadata::getMetadataID()

Definition at line 1785 of file DebugInfo.cpp.

References LLVMGenericDINodeMetadataKind, and llvm::unwrap().

◆ LLVMGetModuleDebugMetadataVersion()

unsigned LLVMGetModuleDebugMetadataVersion ( LLVMModuleRef  Module)

The version of debug metadata that's present in the provided Module.

Definition at line 1048 of file DebugInfo.cpp.

References llvm::getDebugMetadataVersionFromModule(), and llvm::unwrap().

◆ LLVMGetSubprogram()

LLVMMetadataRef LLVMGetSubprogram ( LLVMValueRef  Func)

Get the metadata of the subprogram attached to a function.

See also
llvm::Function::getSubprogram()

Definition at line 1762 of file DebugInfo.cpp.

References getSubprogram(), and llvm::wrap().

◆ LLVMInstructionGetDebugLoc()

LLVMMetadataRef LLVMInstructionGetDebugLoc ( LLVMValueRef  Inst)

Get the debug location for the given instruction.

See also
llvm::Instruction::getDebugLoc()

Definition at line 1774 of file DebugInfo.cpp.

References getDebugLoc(), and llvm::wrap().

◆ LLVMInstructionSetDebugLoc()

void LLVMInstructionSetDebugLoc ( LLVMValueRef  Inst,
LLVMMetadataRef  Loc 
)

Set the debug location for the given instruction.

To clear the location metadata of the given instruction, pass NULL to Loc.

See also
llvm::Instruction::setDebugLoc()

Definition at line 1778 of file DebugInfo.cpp.

◆ LLVMMetadataReplaceAllUsesWith()

void LLVMMetadataReplaceAllUsesWith ( LLVMMetadataRef  TempTargetMetadata,
LLVMMetadataRef  Replacement 
)

Replace all uses of temporary metadata.

Parameters
TempTargetMetadataThe temporary metadata node.
ReplacementThe replacement metadata node.

Definition at line 1647 of file DebugInfo.cpp.

References llvm::MDNode::deleteTemporary(), and llvm::unwrap().

◆ LLVMSetSubprogram()

void LLVMSetSubprogram ( LLVMValueRef  Func,
LLVMMetadataRef  SP 
)

Set the subprogram attached to a function.

See also
llvm::Function::setSubprogram()

Definition at line 1766 of file DebugInfo.cpp.

◆ LLVMStripModuleDebugInfo()

LLVMBool LLVMStripModuleDebugInfo ( LLVMModuleRef  Module)

Strip debug info in the module if it exists.

To do this, we remove all calls to the debugger intrinsics and any named metadata for debugging. We also remove debug locations for instructions. Return true if module is modified.

Definition at line 1052 of file DebugInfo.cpp.

References llvm::StripDebugInfo(), and llvm::unwrap().

◆ LLVMTemporaryMDNode()

LLVMMetadataRef LLVMTemporaryMDNode ( LLVMContextRef  Ctx,
LLVMMetadataRef Data,
size_t  NumElements 
)

Create a new temporary MDNode.

Suitable for use in constructing cyclic MDNode structures. A temporary MDNode is not uniqued, may be RAUW'd, and must be manually deleted with LLVMDisposeTemporaryMDNode.

Parameters
CtxThe context in which to construct the temporary node.
DataThe metadata elements.
NumElementsNumber of metadata elements.

Definition at line 1637 of file DebugInfo.cpp.

References llvm::Data, llvm::MDTuple::getTemporary(), llvm::release, llvm::unwrap(), and llvm::wrap().