View source code
Display the source code in dmd/backend/dtype.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module dmd.backend.dtype

Compiler implementation of the D programming language.

Functions

NameDescription
param_append_type(pp, t) Allocate a param_t of type t, and append it to parameter list.
param_calloc() Allocate a param_t.
param_free(pparamlst) Free parameter list.
param_free_l(p) Version of param_free() suitable for list_free().
param_search(name, pp) Search for member, create symbol as needed. Used for symbol tables for VLA's such as: void func(int n, int a[n]);
param_t_createTal(p, ptali) Create template-argument-list blank from template-parameter-list
param_t_length(p) Compute number of parameters
param_t_print(p) Pretty-print a param_t
param_t_search(p, id) Look for Pident matching id
param_t_searchn(p, id) Look for Pident matching id
type_alignsize(t) Return the size of a type for alignment purposes.
type_alloc(ty) Create a type & initialize it.
type_allocn(ty, tn) Allocate a type of ty with a Tnext of tn.
type_assoc_array(tkey, tvalue) Allocate an associative array type, which are key=value pairs
type_copy(t) Type type information.
type_delegate(tnext) Allocate a delegate type.
type_dyn_array(tnext) Allocate a dynamic array type.
type_embed(t, u) Recursively check if type u is embedded in type t.
type_enum(name, tbase) Create an enum type.
type_fake(ty) Fake a type & initialize it.
type_free(t) Free up data type.
type_function(tyf, ptypes, variadic, tret) Allocation a function type.
type_isdependent(t) Determine if type t is a dependent type.
type_isvla(t) Determine if type is a VLA.
type_parameterSize(t, tyf) Compute the size of a single parameter.
type_paramsize(t) Compute the total size of parameters for function call. Used for stdcall name mangling. Note that hidden parameters do not contribute to size.
type_pointer(tnext) Allocate a pointer type.
type_print(t) Pretty-print a type.
type_setcv(pt, cv) Set/clear const and volatile bits in *pt according to the settings in cv.
type_setdependent(t) Create a 'dependent' version of type t.
type_setdim(pt, dim) Set dimension of array.
type_setmangle(pt, mangle) Modify the Tmangle field of a type.
type_setty(pt, newty) Modify the tym_t field of a type.
type_settype(pt, t) Set type field of some object to t.
type_size(t) Compute size of type in bytes.
type_static_array(dim, tnext) Allocate a static array type.
type_struct_class(name, alignsize, structsize, arg1type, arg2type, isUnion, isClass, isPOD, is0size) Create a struct/union/class type.
type_term() Free type_list.
type_zeroSize(t, tyf) Compute special zero sized struct.
typematch(t1, t2, relax) A cheap version of exp2.typematch() and exp2.paramlstmatch(), so that we can get cpp_mangle() to work for MARS. It's less complex because it doesn't do templates and can rely on strict typechecking.

Authors

Walter Bright

License

Boost License 1.0