![]() | IDebugTypeTNative, TDebug Interface |
[This is preliminary documentation and is subject to change.]
Namespace: Llvm.NET.DebugInfo
public interface IDebugType<out TNative, out TDebug> : ITypeRef, IExtensiblePropertyContainer where TNative : ITypeRef where TDebug : DIType
The IDebugTypeTNative, TDebug type exposes the following members.
Name | Description | |
---|---|---|
![]() | Context | Context that owns this type (Inherited from ITypeRef.) |
![]() | DIType | Debug information type this interface is associating with NativeType |
![]() | IntegerBitWidth | Integer bit width of this type or 0 for non integer types (Inherited from ITypeRef.) |
![]() | IsDouble | (Inherited from ITypeRef.) |
![]() | IsFloat | (Inherited from ITypeRef.) |
![]() | IsFloatingPoint | Flag to indicate if this type is a floating point type (Inherited from ITypeRef.) |
![]() | IsInteger | Flag to indicate if this type is an integer (Inherited from ITypeRef.) |
![]() | IsPointer | Flag to indicate if this type is a pointer (Inherited from ITypeRef.) |
![]() | IsPointerPointer | FLag to indicate if this type is a pointer to a pointer (Inherited from ITypeRef.) |
![]() | IsSequence | Flag to indicate if this type is a sequence type (Inherited from ITypeRef.) |
![]() | IsSized | Flag to indicate if the type is sized (Inherited from ITypeRef.) |
![]() | IsStruct | Flag to indicate if this type is a structure type (Inherited from ITypeRef.) |
![]() | IsVoid | Flag to indicate if this type represents the void type (Inherited from ITypeRef.) |
![]() | Kind | LLVM Type kind for this type (Inherited from ITypeRef.) |
![]() | NativeType | LLVM NativeType this interface is associating with debug info in DIType |
![]() | TypeHandle | LibLLVM handle for the type (Inherited from ITypeRef.) |
Name | Description | |
---|---|---|
![]() | AddExtendedPropertyValue | Adds a value to the container (Inherited from IExtensiblePropertyContainer.) |
![]() | CreateArrayType | Array type factory for an array with elements of this type (Inherited from ITypeRef.) |
![]() | CreatePointerType | Get a IPointerType for a type that points to elements of this type in the default (0) address space (Inherited from ITypeRef.) |
![]() | CreatePointerType(UInt32) | Get a IPointerType for a type that points to elements of this type in the specified address space (Inherited from ITypeRef.) |
![]() | GetNullValue | Gets a null value (e.g. all bits == 0 ) for the type (Inherited from ITypeRef.) |
![]() | TryGetExtendedPropertyValueT | Try to get a value from the container (Inherited from IExtensiblePropertyContainer.) |
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 class is 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.
![]() |
---|
It is important to note that the relationship between the DIType 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 DIType or an implementation of this interface as there may be many such mappings to choose from. |