module lib.llvm.c.DebugInfo

Code Map

module lib.llvm.c.DebugInfo;


enum LLVMDIFlags
{
	Zero,
	Private,
	Protected,
	Public,
	FwdDecl,
	AppleBlock,
	BlockByrefStruct,
	Virtual,
	Artificial,
	Explicit,
	Prototyped,
	ObjcClassComplete,
	ObjectPointer,
	Vector,
	StaticMember,
	LValueReference,
	RValueReference,
	Reserved,
	SingleInheritance,
	MultipleInheritance,
	VirtualInheritance,
	IntroducedVirtual,
	BitField,
	NoReturn,
	MainSubprogram,
	TypePassByValue,
	TypePassByReference,
	FixedEnum,
	Thunk,
	Trivial,
	BigEndian,
	LittleEndian,
	IndirectVirtualBase,
	Accessibility,
	PtrToMemberRep,
}

enum LLVMDWARFSourceLanguage
{
	C89,
	C,
	Ada83,
	C_plus_plus,
	Cobol74,
	Cobol85,
	Fortran77,
	Fortran90,
	Pascal83,
	Modula2,
	Java,
	C99,
	Ada95,
	Fortran95,
	PLI,
	ObjC,
	ObjC_plus_plus,
	UPC,
	D,
	Python,
	OpenCL,
	Go,
	Modula3,
	Haskell,
	C_plus_plus_03,
	C_plus_plus_11,
	OCaml,
	Rust,
	C11,
	Swift,
	Julia,
	Dylan,
	C_plus_plus_14,
	Fortran03,
	Fortran08,
	RenderScript,
	BLISS,
	Mips_Assembler,
	GOOGLE_RenderScript,
	BORLAND_Delphi,
}

enum LLVMDWARFEmissionKind
{
	None,
	Full,
	LineTablesOnly,
}

alias LLVMDWARFTypeEncoding = u32;

fn LLVMDebugMetadataVersion() u32;
fn LLVMGetModuleDebugMetadataVersion(Module: LLVMModuleRef) u32;
fn LLVMStripModuleDebugInfo(Module: LLVMModuleRef) LLVMBool;
fn LLVMCreateDIBuilderDisallowUnresolved(M: LLVMModuleRef) LLVMDIBuilderRef;
fn LLVMCreateDIBuilder(M: LLVMModuleRef) LLVMDIBuilderRef;
fn LLVMDisposeDIBuilder(Builder: LLVMDIBuilderRef);
fn LLVMDIBuilderFinalize(Builder: LLVMDIBuilderRef);
fn LLVMDIBuilderCreateCompileUnit(Builder: LLVMDIBuilderRef, Lang: LLVMDWARFSourceLanguage, FileRef: LLVMMetadataRef, Producer: const(char)*, ProducerLen: size_t, isOptimized: LLVMBool, Flags: const(char)*, FlagsLen: size_t, RuntimeVer: u32, SplitName: const(char)*, SplitNameLen: size_t, Kind: LLVMDWARFEmissionKind, DWOId: u32, SplitDebugInlining: LLVMBool, DebugInfoForProfiling: LLVMBool) LLVMMetadataRef;
fn LLVMDIBuilderCreateFile(Builder: LLVMDIBuilderRef, Filename: const(char)*, FilenameLen: size_t, Directory: const(char)*, DirectoryLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateModule(Builder: LLVMDIBuilderRef, ParentScope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, ConfigMacros: const(char)*, ConfigMacrosLen: size_t, IncludePath: const(char)*, IncludePathLen: size_t, ISysRoot: const(char)*, ISysRootLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateNameSpace(Builder: LLVMDIBuilderRef, ParentScope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, ExportSymbols: LLVMBool) LLVMMetadataRef;
fn LLVMDIBuilderCreateFunction(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, LinkageName: const(char)*, LinkageNameLen: size_t, File: LLVMMetadataRef, LineNo: u32, Ty: LLVMMetadataRef, IsLocalToUnit: LLVMBool, IsDefinition: LLVMBool, ScopeLine: u32, Flags: LLVMDIFlags, IsOptimized: LLVMBool) LLVMMetadataRef;
fn LLVMDIBuilderCreateLexicalBlock(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, File: LLVMMetadataRef, Line: u32, Column: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateLexicalBlockFile(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, File: LLVMMetadataRef, Discriminator: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateImportedModuleFromNamespace(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, NS: LLVMMetadataRef, File: LLVMMetadataRef, Line: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateImportedModuleFromAlias(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, ImportedEntity: LLVMMetadataRef, File: LLVMMetadataRef, Line: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateImportedModuleFromModule(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, M: LLVMMetadataRef, File: LLVMMetadataRef, Line: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateImportedDeclaration(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Decl: LLVMMetadataRef, File: LLVMMetadataRef, Line: u32, Name: const(char)*, NameLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateDebugLocation(Ctx: LLVMContextRef, Line: u32, Column: u32, Scope: LLVMMetadataRef, InlinedAt: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDILocationGetLine(Location: LLVMMetadataRef) u32;
fn LLVMDILocationGetColumn(Location: LLVMMetadataRef) u32;
fn LLVMDILocationGetScope(Location: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderGetOrCreateTypeArray(Builder: LLVMDIBuilderRef, Data: LLVMMetadataRef*, NumElements: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateSubroutineType(Builder: LLVMDIBuilderRef, File: LLVMMetadataRef, ParameterTypes: LLVMMetadataRef*, NumParameterTypes: u32, Flags: LLVMDIFlags) LLVMMetadataRef;
fn LLVMDIBuilderCreateEnumerationType(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNumber: u32, SizeInBits: u64, AlignInBits: u32, Elements: LLVMMetadataRef*, NumElements: u32, ClassTy: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateUnionType(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNumber: u32, SizeInBits: u64, AlignInBits: u32, Flags: LLVMDIFlags, Elements: LLVMMetadataRef*, NumElements: u32, RunTimeLang: u32, UniqueId: const(char)*, UniqueIdLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateArrayType(Builder: LLVMDIBuilderRef, Size: u64, AlignInBits: u32, Ty: LLVMMetadataRef, Subscripts: LLVMMetadataRef*, NumSubscripts: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateVectorType(Builder: LLVMDIBuilderRef, Size: u64, AlignInBits: u32, Ty: LLVMMetadataRef, Subscripts: LLVMMetadataRef*, NumSubscripts: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateUnspecifiedType(Builder: LLVMDIBuilderRef, Name: const(char)*, NameLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateBasicType(Builder: LLVMDIBuilderRef, Name: const(char)*, NameLen: size_t, SizeInBits: u64, Encoding: LLVMDWARFTypeEncoding, Flags: LLVMDIFlags) LLVMMetadataRef;
fn LLVMDIBuilderCreatePointerType(Builder: LLVMDIBuilderRef, PointeeTy: LLVMMetadataRef, SizeInBits: u64, AlignInBits: u32, AddressSpace: u32, Name: const(char)*, NameLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateStructType(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNumber: u32, SizeInBits: u64, AlignInBits: u32, Flags: LLVMDIFlags, DerivedFrom: LLVMMetadataRef, Elements: LLVMMetadataRef*, NumElements: u32, RunTimeLang: u32, VTableHolder: LLVMMetadataRef, UniqueId: const(char)*, UniqueIdLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateMemberType(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNo: u32, SizeInBits: u64, AlignInBits: u32, OffsetInBits: u64, Flags: LLVMDIFlags, Ty: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateStaticMemberType(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNumber: u32, Type: LLVMMetadataRef, Flags: LLVMDIFlags, ConstantVal: LLVMValueRef, AlignInBits: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateMemberPointerType(Builder: LLVMDIBuilderRef, PointeeType: LLVMMetadataRef, ClassType: LLVMMetadataRef, SizeInBits: u64, AlignInBits: u32, Flags: LLVMDIFlags) LLVMMetadataRef;
fn LLVMDIBuilderCreateObjCIVar(Builder: LLVMDIBuilderRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNo: u32, SizeInBits: u64, AlignInBits: u32, OffsetInBits: u64, Flags: LLVMDIFlags, Ty: LLVMMetadataRef, PropertyNode: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateObjCProperty(Builder: LLVMDIBuilderRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNo: u32, GetterName: const(char)*, GetterNameLen: size_t, SetterName: const(char)*, SetterNameLen: size_t, PropertyAttributes: u32, Ty: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateObjectPointerType(Builder: LLVMDIBuilderRef, Type: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateQualifiedType(Builder: LLVMDIBuilderRef, Tag: u32, Type: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateReferenceType(Builder: LLVMDIBuilderRef, Tag: u32, Type: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateNullPtrType(Builder: LLVMDIBuilderRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateTypedef(Builder: LLVMDIBuilderRef, Type: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNo: u32, Scope: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateInheritance(Builder: LLVMDIBuilderRef, Ty: LLVMMetadataRef, BaseTy: LLVMMetadataRef, BaseOffset: u64, VBPtrOffset: u32, Flags: LLVMDIFlags) LLVMMetadataRef;
fn LLVMDIBuilderCreateForwardDecl(Builder: LLVMDIBuilderRef, Tag: u32, Name: const(char)*, NameLen: size_t, Scope: LLVMMetadataRef, File: LLVMMetadataRef, Line: u32, RuntimeLang: u32, SizeInBits: u64, AlignInBits: u32, UniqueIdentifier: const(char)*, UniqueIdentifierLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateReplaceableCompositeType(Builder: LLVMDIBuilderRef, Tag: u32, Name: const(char)*, NameLen: size_t, Scope: LLVMMetadataRef, File: LLVMMetadataRef, Line: u32, RuntimeLang: u32, SizeInBits: u64, AlignInBits: u32, Flags: LLVMDIFlags, UniqueIdentifier: const(char)*, UniqueIdentifierLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateBitFieldMemberType(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNumber: u32, SizeInBits: u64, OffsetInBits: u64, StorageOffsetInBits: u64, Flags: LLVMDIFlags, Type: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDIBuilderCreateClassType(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNumber: u32, SizeInBits: u64, AlignInBits: u32, OffsetInBits: u64, Flags: LLVMDIFlags, DerivedFrom: LLVMMetadataRef, Elements: LLVMMetadataRef*, NumElements: u32, VTableHolder: LLVMMetadataRef, TemplateParamsNode: LLVMMetadataRef, UniqueIdentifier: const(char)*, UniqueIdentifierLen: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateArtificialType(Builder: LLVMDIBuilderRef, Type: LLVMMetadataRef) LLVMMetadataRef;
fn LLVMDITypeGetName(DType: LLVMMetadataRef, Length: size_t*) const(char)*;
fn LLVMDITypeGetSizeInBits(DType: LLVMMetadataRef) u64;
fn LLVMDITypeGetOffsetInBits(DType: LLVMMetadataRef) u64;
fn LLVMDITypeGetAlignInBits(DType: LLVMMetadataRef) u32;
fn LLVMDITypeGetLine(DType: LLVMMetadataRef) u32;
fn LLVMDITypeGetFlags(DType: LLVMMetadataRef) LLVMDIFlags;
fn LLVMDIBuilderGetOrCreateSubrange(Builder: LLVMDIBuilderRef, LowerBound: i64, Count: i64) LLVMMetadataRef;
fn LLVMDIBuilderGetOrCreateArray(Builder: LLVMDIBuilderRef, Data: LLVMMetadataRef*, NumElements: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateExpression(Builder: LLVMDIBuilderRef, Addr: i64*, Length: size_t) LLVMMetadataRef;
fn LLVMDIBuilderCreateConstantValueExpression(Builder: LLVMDIBuilderRef, Value: i64) LLVMMetadataRef;
fn LLVMDIBuilderCreateGlobalVariableExpression(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, Linkage: const(char)*, LinkLen: size_t, File: LLVMMetadataRef, LineNo: u32, Ty: LLVMMetadataRef, LocalToUnit: LLVMBool, Expr: LLVMMetadataRef, Decl: LLVMMetadataRef, AlignInBits: u32) LLVMMetadataRef;
fn LLVMTemporaryMDNode(Ctx: LLVMContextRef, Data: LLVMMetadataRef*, NumElements: size_t) LLVMMetadataRef;
fn LLVMDisposeTemporaryMDNode(TempNode: LLVMMetadataRef);
fn LLVMMetadataReplaceAllUsesWith(TempTargetMetadata: LLVMMetadataRef, Replacement: LLVMMetadataRef);
fn LLVMDIBuilderCreateTempGlobalVariableFwdDecl(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, Linkage: const(char)*, LnkLen: size_t, File: LLVMMetadataRef, LineNo: u32, Ty: LLVMMetadataRef, LocalToUnit: LLVMBool, Decl: LLVMMetadataRef, AlignInBits: u32) LLVMMetadataRef;
fn LLVMDIBuilderInsertDeclareBefore(Builder: LLVMDIBuilderRef, Storage: LLVMValueRef, VarInfo: LLVMMetadataRef, Expr: LLVMMetadataRef, DebugLoc: LLVMMetadataRef, Instr: LLVMValueRef) LLVMValueRef;
fn LLVMDIBuilderInsertDeclareAtEnd(Builder: LLVMDIBuilderRef, Storage: LLVMValueRef, VarInfo: LLVMMetadataRef, Expr: LLVMMetadataRef, DebugLoc: LLVMMetadataRef, Block: LLVMBasicBlockRef) LLVMValueRef;
fn LLVMDIBuilderInsertDbgValueBefore(Builder: LLVMDIBuilderRef, Val: LLVMValueRef, VarInfo: LLVMMetadataRef, Expr: LLVMMetadataRef, DebugLoc: LLVMMetadataRef, Instr: LLVMValueRef) LLVMValueRef;
fn LLVMDIBuilderInsertDbgValueAtEnd(Builder: LLVMDIBuilderRef, Val: LLVMValueRef, VarInfo: LLVMMetadataRef, Expr: LLVMMetadataRef, DebugLoc: LLVMMetadataRef, Block: LLVMBasicBlockRef) LLVMValueRef;
fn LLVMDIBuilderCreateAutoVariable(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, File: LLVMMetadataRef, LineNo: u32, Ty: LLVMMetadataRef, AlwaysPreserve: LLVMBool, Flags: LLVMDIFlags, AlignInBits: u32) LLVMMetadataRef;
fn LLVMDIBuilderCreateParameterVariable(Builder: LLVMDIBuilderRef, Scope: LLVMMetadataRef, Name: const(char)*, NameLen: size_t, ArgNo: u32, File: LLVMMetadataRef, LineNo: u32, Ty: LLVMMetadataRef, AlwaysPreserve: LLVMBool, Flags: LLVMDIFlags) LLVMMetadataRef;
fn LLVMGetSubprogram(Func: LLVMValueRef) LLVMMetadataRef;
fn LLVMSetSubprogram(Func: LLVMValueRef, SP: LLVMMetadataRef);