This page lists runtime functions to which the compiler may automatically generate calls to in certain circumstances. This list was taken from dmd's backend/rtlsym.h.
This list is not complete and may even list functions which are no longer needed. Please help to verify this list.
hooks for associative array support
mangled name |
calling convention |
description |
druntime definition |
comment
|
_aaApply |
extern(C) |
|
rt/aaA.d |
|
_aaApply2 |
extern(C) |
|
rt/aaA.d |
|
_aaDelX |
extern(C) |
|
rt/aaA.d |
|
_aaEqual |
extern(C) |
|
rt/aaA.d |
|
_aaGetRvalueX |
extern(C) |
|
rt/aaA.d |
|
_aaGetX |
extern(C) |
|
rt/aaA.d |
|
_aaInX |
extern(C) |
|
rt/aaA.d |
|
_aaLen |
extern(C) |
|
rt/aaA.d |
|
_d_assocarrayliteralT |
extern(C) |
|
rt/aaA.d |
|
_d_assocarrayliteralTX |
extern(C) |
|
rt/aaA.d |
|
hooks for exception support
mangled name |
calling convention |
description |
druntime definition |
comment
|
_d_throw |
??? |
|
??? |
|
_d_throw@4 |
??? |
|
??? |
|
_d_throwc |
extern(C) |
|
rt/deh2.d |
|
hooks for unit test support
mangled name |
calling convention |
description |
druntime definition |
comment
|
_d_unittest |
extern(C) |
|
rt/dmain2.d |
|
_d_unittest_msg |
extern(C) |
|
rt/dmain2.d |
|
_d_unittestm |
extern(C) |
|
rt/dmain2.d |
|
hooks for thread support
mangled name |
calling convention |
description |
druntime definition |
comment
|
___tls_get_addr |
extern(D) |
Returns the thread local address of a variable. Used to emulate thread local storage on Mac OS X. |
core/thread.d |
Only used on Mac OS X.
|
hooks for GC support
mangled name |
calling convention |
description |
druntime definition |
comment
|
RTInfo |
(not a function) |
Used to create runtime type information which can then be obtained by the GC at runtime. |
object_.d |
This is a template which gets instantiated for every type.
|
Hooks for assert suppprt
mangled name |
calling convention |
description |
druntime definition |
comment
|
_d_assert |
extern(C) |
|
rt/dmain2.d |
|
_d_assert_msg |
extern(C) |
|
rt/dmain2.d |
|
_d_assertm |
extern(C) |
|
rt/dmain2.d |
|
List of unsorted runtime hooks
mangled name |
calling convention |
description |
druntime definition |
comment
|
D9invariant12_d_invariantFC6ObjectZv |
extern(D) |
|
rt/invariant.d |
|
_D9invariant12_d_invariantFC6ObjectZv |
|
|
|
???
|
_d_allocmemory |
extern(C) |
Allocate memory using the garbage collector. DMD uses this to allocate closures |
rt/lifetime.d |
|
_d_allocmemoryT |
extern(C) |
For allocating a single POD value (LDC Only) |
rt/lifetime.d |
|
_d_callfinalizer |
extern(C) |
|
rt/lifetime.d |
|
_d_callinterfacefinalizer |
extern(C) |
|
rt/lifetime.d |
|
_d_cover_register |
extern(C) |
|
rt/cover.d |
|
_d_criticalenter |
extern(C) |
|
rt/critical_.d |
|
_d_criticalexit |
extern(C) |
|
rt/critical_.d |
|
_d_delclass |
extern(C) |
|
rt/lifetime.d |
|
_d_delinterface |
extern(C) |
|
rt/lifetime.d |
|
_d_delmemory |
extern(C) |
|
rt/lifetime.d |
|
_d_dynamic_cast |
extern(C) |
Attempts to cast Object o to class c Returns o if successful, null if not. |
rt/cast_.d |
|
_d_hidden_func |
extern(C) |
|
rt/dmain2.d |
|
_d_interface_cast |
extern(C) |
|
rt/cast_.d |
|
_d_interface_vtbl |
extern(C) |
|
rt/cast_.d |
|
_d_monitor_epilog |
extern(C) |
|
rt/deh.d |
|
_d_monitor_handler |
extern(C) |
|
rt/deh.d |
|
_d_monitor_prolog |
extern(C) |
|
rt/deh.d |
|
_d_monitorenter |
extern(C) |
|
rt/deh.d |
|
_d_monitorexit |
extern(C) |
|
rt/deh.d |
|
_d_newclass |
extern(C) |
Create a new class instance. Allocates memory and sets fields to their initial value, but does not call a constructor |
rt/lifetime.d |
|
_d_newarrayU |
extern(C) |
Allocate an array with the garbage collector. Leave elements uninitialized |
rt/lifetime.d |
|
_d_newarrayT |
extern(C) |
Initializes to 0 (e.g `new int[]`) |
rt/lifetime.d |
|
_d_newarrayiT |
extern(C) |
Initializes based on initializer retrieved from TypeInfo (e.g `new float[]`) |
rt/lifetime.d |
|
_d_newarraymTX |
extern(C) |
Create a new multi-dimensional array which initializes to 0 |
rt/lifetime.d |
new int[][](10, 20);// _d_newarraymTX(typeid(float), [10, 20]);
|
_d_newarraymiTX |
extern(C) |
which initializes elements based on `TypeInfo` |
rt/lifetime.d |
new float[][][](10, 20, 30); // _d_newarraymiTX(typeid(float), [10, 20, 30]);
|
_d_newitemU |
extern(C) |
Leaves the item uninitialized |
rt/lifetime.d |
|
_d_newitemT |
extern(C) |
Zero initializes the item |
rt/lifetime.d |
|
_d_newitemiT |
extern(C) |
Uses a non-zero initializer from `TypeInfo` |
rt/lifetime.d |
|
_d_obj_cmp |
extern(C) |
|
rt/obj.d |
Converted to template __cmp
|
_d_obj_eq |
extern(C) |
|
rt/obj.d |
Converted to template __equals
|