[#llvm-DIBuilder] = xref:llvm.adoc[llvm]::DIBuilder :relfileprefix: ../ :mrdocs: Builder for constructing LLVM IR debug information metadata. == Synopsis Declared in `<llvm/IR/DIBuilder.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class DIBuilder; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/DIBuilder/2constructor-0f.adoc[`DIBuilder`] [.small]#[constructor]# | Constructors | xref:llvm/DIBuilder/operator_assign.adoc[`operator=`] [.small]#[deleted]# | Copy assignment is deleted; DIBuilder is non‐copyable. | xref:llvm/DIBuilder/createArrayType-047.adoc[`createArrayType`] | Create debugging information entry for an array. | xref:llvm/DIBuilder/createAutoVariable.adoc[`createAutoVariable`] | Create a new descriptor for an auto variable. This is a local variable that is not a subprogram parameter. | xref:llvm/DIBuilder/createBasicType-0c.adoc[`createBasicType`] | Create debugging information entry for a basic type. | xref:llvm/DIBuilder/createBinaryFixedPointType.adoc[`createBinaryFixedPointType`] | Create debugging information entry for a binary fixed‐point type. | xref:llvm/DIBuilder/createBitFieldMemberType-08.adoc[`createBitFieldMemberType`] | Create debugging information entry for a bit field member. | xref:llvm/DIBuilder/createClassType.adoc[`createClassType`] | Create debugging information entry for a class. | xref:llvm/DIBuilder/createCommonBlock.adoc[`createCommonBlock`] | Create common block entry for a Fortran common block. | xref:llvm/DIBuilder/createCompileUnit.adoc[`createCompileUnit`] | A CompileUnit provides an anchor for all debugging information generated during this instance of compilation. | xref:llvm/DIBuilder/createConstantValueExpression.adoc[`createConstantValueExpression`] | Create an expression for a variable that does not have an address, but does have a constant value. | xref:llvm/DIBuilder/createDecimalFixedPointType.adoc[`createDecimalFixedPointType`] | Create debugging information entry for a decimal fixed‐point type. | xref:llvm/DIBuilder/createEnumerationType.adoc[`createEnumerationType`] | Create debugging information entry for an enumeration. | xref:llvm/DIBuilder/createEnumerator-06.adoc[`createEnumerator`] | `createEnumerator` overloads | xref:llvm/DIBuilder/createExpression.adoc[`createExpression`] | Create a new descriptor for the specified variable which has a complex address expression for its address. | xref:llvm/DIBuilder/createFile.adoc[`createFile`] | Create a file descriptor to hold debugging information for a file. | xref:llvm/DIBuilder/createForwardDecl.adoc[`createForwardDecl`] | Create a permanent forward‐declared type. | xref:llvm/DIBuilder/createFriend.adoc[`createFriend`] | Create debugging information entry for a 'friend'. | xref:llvm/DIBuilder/createFunction.adoc[`createFunction`] | Create a new descriptor for the specified subprogram. See comments in DISubprogram* for descriptions of these fields. | xref:llvm/DIBuilder/createGlobalVariableExpression.adoc[`createGlobalVariableExpression`] | Create a new descriptor for the specified variable. | xref:llvm/DIBuilder/createImportedDeclaration.adoc[`createImportedDeclaration`] | Create a descriptor for an imported function. | xref:llvm/DIBuilder/createImportedModule-0ff.adoc[`createImportedModule`] | Create a descriptor for an imported module. | xref:llvm/DIBuilder/createInheritance.adoc[`createInheritance`] | Create debugging information entry to establish inheritance relationship between two types. | xref:llvm/DIBuilder/createLabel.adoc[`createLabel`] | Create a new descriptor for an label. | xref:llvm/DIBuilder/createLexicalBlock.adoc[`createLexicalBlock`] | This creates a descriptor for a lexical block with the specified parent context. | xref:llvm/DIBuilder/createLexicalBlockFile.adoc[`createLexicalBlockFile`] | This creates a descriptor for a lexical block with a new file attached. This merely extends the existing lexical block as it crosses a file. | xref:llvm/DIBuilder/createMacro.adoc[`createMacro`] | Create debugging information entry for a macro. | xref:llvm/DIBuilder/createMemberPointerType.adoc[`createMemberPointerType`] | Create debugging information entry for a pointer to member. | xref:llvm/DIBuilder/createMemberType-0a.adoc[`createMemberType`] | Create debugging information entry for a member. | xref:llvm/DIBuilder/createMethod.adoc[`createMethod`] | Create a new descriptor for the specified C++ method. See comments in _DISubprogram*_ for descriptions of these fields. | xref:llvm/DIBuilder/createModule.adoc[`createModule`] | This creates new descriptor for a module with the specified parent scope. | xref:llvm/DIBuilder/createNameSpace.adoc[`createNameSpace`] | This creates new descriptor for a namespace with the specified parent scope. | xref:llvm/DIBuilder/createNullPtrType.adoc[`createNullPtrType`] | Create C++11 nullptr type. | xref:llvm/DIBuilder/createObjCIVar.adoc[`createObjCIVar`] | Create debugging information entry for Objective‐C instance variable. | xref:llvm/DIBuilder/createObjCProperty.adoc[`createObjCProperty`] | Create debugging information entry for Objective‐C property. | xref:llvm/DIBuilder/createParameterVariable.adoc[`createParameterVariable`] | Create a new descriptor for a parameter variable. | xref:llvm/DIBuilder/createPointerType.adoc[`createPointerType`] | Create debugging information entry for a pointer. | xref:llvm/DIBuilder/createProperty.adoc[`createProperty`] | Create debugging information entry for a property, i.e. an entity that is accessed like a data member but whose access is implemented by an accessor. | xref:llvm/DIBuilder/createPtrAuthQualifiedType.adoc[`createPtrAuthQualifiedType`] | Create a __ptrauth qualifier. | xref:llvm/DIBuilder/createQualifiedType.adoc[`createQualifiedType`] | Create debugging information entry for a qualified type, e.g. 'const int'. | xref:llvm/DIBuilder/createRationalFixedPointType.adoc[`createRationalFixedPointType`] | Create debugging information entry for an arbitrary rational fixed‐point type. | xref:llvm/DIBuilder/createReferenceType.adoc[`createReferenceType`] | Create debugging information entry for a c++ style reference or rvalue reference type. | xref:llvm/DIBuilder/createReplaceableCompositeType.adoc[`createReplaceableCompositeType`] | Create a temporary forward‐declared type. | xref:llvm/DIBuilder/createSetType.adoc[`createSetType`] | Create debugging information entry for a set. | xref:llvm/DIBuilder/createStaticMemberType.adoc[`createStaticMemberType`] | Create debugging information entry for a C++ static data member. | xref:llvm/DIBuilder/createStringType-01.adoc[`createStringType`] | `createStringType` overloads | xref:llvm/DIBuilder/createStructType-00.adoc[`createStructType`] | Create debugging information entry for a struct. | xref:llvm/DIBuilder/createSubrangeType.adoc[`createSubrangeType`] | Create a type describing a subrange of another type. | xref:llvm/DIBuilder/createSubroutineType.adoc[`createSubroutineType`] | Create subroutine type. | xref:llvm/DIBuilder/createTempFunctionFwdDecl.adoc[`createTempFunctionFwdDecl`] | Identical to createFunction, except that the resulting DbgNode is meant to be RAUWed. | xref:llvm/DIBuilder/createTempGlobalVariableFwdDecl.adoc[`createTempGlobalVariableFwdDecl`] | Identical to createGlobalVariable except that the resulting DbgNode is temporary and meant to be RAUWed. | xref:llvm/DIBuilder/createTempMacroFile.adoc[`createTempMacroFile`] | Create a temporary macro‐file debug info entry. | xref:llvm/DIBuilder/createTemplateAlias.adoc[`createTemplateAlias`] | Create debugging information entry for a template alias. | xref:llvm/DIBuilder/createTemplateParameterPack.adoc[`createTemplateParameterPack`] | Create debugging information for a template parameter pack. | xref:llvm/DIBuilder/createTemplateTemplateParameter.adoc[`createTemplateTemplateParameter`] | Create debugging information for a template template parameter. | xref:llvm/DIBuilder/createTemplateTypeParameter.adoc[`createTemplateTypeParameter`] | Create debugging information for template type parameter. | xref:llvm/DIBuilder/createTemplateValueParameter.adoc[`createTemplateValueParameter`] | Create debugging information for template value parameter. | xref:llvm/DIBuilder/createTypedef.adoc[`createTypedef`] | Create debugging information entry for a typedef. | xref:llvm/DIBuilder/createUnionType.adoc[`createUnionType`] | Create debugging information entry for an union. | xref:llvm/DIBuilder/createUnspecifiedParameter.adoc[`createUnspecifiedParameter`] | Create unspecified parameter type for a subroutine type. | xref:llvm/DIBuilder/createUnspecifiedType.adoc[`createUnspecifiedType`] | Create a DWARF unspecified type. | xref:llvm/DIBuilder/createVariantMemberType-06.adoc[`createVariantMemberType`] | `createVariantMemberType` overloads | xref:llvm/DIBuilder/createVariantPart.adoc[`createVariantPart`] | Create debugging information entry for a variant part. | xref:llvm/DIBuilder/createVectorType.adoc[`createVectorType`] | Create debugging information entry for a vector type. | xref:llvm/DIBuilder/finalize.adoc[`finalize`] | Construct any deferred debug info descriptors. | xref:llvm/DIBuilder/finalizeSubprogram.adoc[`finalizeSubprogram`] | Finalize a specific subprogram ‐ no new variables may be added to this subprogram afterwards. | xref:llvm/DIBuilder/getOrCreateArray.adoc[`getOrCreateArray`] | Get a DINodeArray, create one if required. | xref:llvm/DIBuilder/getOrCreateGenericSubrange.adoc[`getOrCreateGenericSubrange`] | Create a descriptor for a generic value range. | xref:llvm/DIBuilder/getOrCreateMacroArray.adoc[`getOrCreateMacroArray`] | Get a DIMacroNodeArray, create one if required. | xref:llvm/DIBuilder/getOrCreateSubrange-01.adoc[`getOrCreateSubrange`] | `getOrCreateSubrange` overloads | xref:llvm/DIBuilder/getOrCreateTypeArray.adoc[`getOrCreateTypeArray`] | Get a DITypeArray, create one if required. | xref:llvm/DIBuilder/insertDbgAssign.adoc[`insertDbgAssign`] | Insert a new #dbg_assign record. | xref:llvm/DIBuilder/insertDbgValue.adoc[`insertDbgValue`] | Insert a new #dbg_value record. | xref:llvm/DIBuilder/insertDeclare-08.adoc[`insertDeclare`] | Insert a new #dbg_declare record. | xref:llvm/DIBuilder/insertDeclareValue.adoc[`insertDeclareValue`] | Insert a new #dbg_declare_value record. | xref:llvm/DIBuilder/insertLabel.adoc[`insertLabel`] | Insert a new #dbg_label record. | xref:llvm/DIBuilder/replaceArrays.adoc[`replaceArrays`] | Replace arrays on a composite type. | xref:llvm/DIBuilder/replaceTemporary.adoc[`replaceTemporary`] | Replace a temporary node. | xref:llvm/DIBuilder/replaceVTableHolder.adoc[`replaceVTableHolder`] | Replace the vtable holder in the given type. | xref:llvm/DIBuilder/retainType.adoc[`retainType`] | Retain DIScope* in a module even if it is not referenced through debug info anchors. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/DIBuilder/createArtificialSubprogram.adoc[`createArtificialSubprogram`] | Create a distinct clone of `SP` with FlagArtificial set. | xref:llvm/DIBuilder/createArtificialType.adoc[`createArtificialType`] | Create a uniqued clone of `Ty` with FlagArtificial set. | xref:llvm/DIBuilder/createObjectPointerType.adoc[`createObjectPointerType`] | Create a uniqued clone of `Ty` with FlagObjectPointer set. If `Implicit` is true, also set FlagArtificial. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/applyDebugifyMetadataToMachineFunction.adoc[`applyDebugifyMetadataToMachineFunction`] | Add synthesized debug information to a MachineFunction. | xref:llvm/getExpressionForConstant.adoc[`getExpressionForConstant`] | Create a debug‐info expression for a constant. | xref:llvm/unwrap-004.adoc[`unwrap`] | Convert an opaque `LLVMDIBuilderRef` to a `DIBuilder` pointer. | xref:llvm/wrap-0bc.adoc[`wrap`] | Convert a `DIBuilder` pointer to an opaque `LLVMDIBuilderRef.` |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#