Interface IDebugType<TNative, TDebug>
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