Table of Contents

Interface IDebugType<TNative, TDebug>

Namespace
Ubiquity.NET.Llvm.DebugInfo
Assembly
Ubiquity.NET.Llvm.dll

Provides pairing of a ITypeRef with a DebugInfoType for function signatures

public interface IDebugType<out TNative, out TDebug> : ITypeRef, IEquatable<ITypeRef> where TNative : ITypeRef where TDebug : DIType

Type Parameters

TNative

Native LLVM type

TDebug

Debug type description for the type

Inherited Members

Remarks

Primitive types and function signature types are all interned in LLVM, thus there won't be a strict one to one relationship between an LLVM type and corresponding language specific debug type. (e.g. unsigned char, char, byte and signed byte might all be 8 bit integer values as far as LLVM is concerned.) Also, when using the pointer+alloca+memcpy pattern to pass by value the actual source debug info type is different than the LLVM function signature. This interface and it's implementations are used to construct native type and debug info pairing to allow applications to maintain a link from their AST or IR types into the LLVM native type and debug information.

note

It is important to note that the relationship from the DebugInfoType to it's NativeType properties is strictly ***one way***. That is, there is no way to take an arbitrary ITypeRef and re-associate it with the DebugInfoType or an implementation of this interface as there may be many such mappings to choose from.

Properties

DebugInfoType

Gets the debug information type this interface is associating with NativeType

NativeType

Gets the LLVM NativeType this interface is associating with debug info in DebugInfoType

Methods

CreateArrayType(IDIBuilder, uint, uint)

Creates a type defining an array of elements of this type

CreatePointerType(IDIBuilder, uint)

Creates a pointer to this type for a given module and address space