Compiler implementation of the D programming language.
Print out debugging information.
Position in source file
Set fields of Srcpos
const(char)* filename
| file name |
uint linnum
| line number |
int charnum
| character number |
Current 'state' of the compiler. Used to gather together most global variables. This struct is saved/restored during function body parsing.
Global variables.
Basic blocks: Basic blocks are a linked list of all the basic blocks in a function. startblock heads the list.
Basic block control flow operators.
Range for blocks.
Functions
Item in list for member initializer.
Base classes are a list of these.
For virtual tables.
Information gathered about externally defined template member functions, member data, and member classes.
Information gathered about primary member template explicit specialization.
Information gathered about nested explicit specializations.
Information gathered about nested class friends.
Special information for class templates.
Special information for enums.
Special information for structs.
Symbol Table
Function parameters: Pident identifier of parameter Ptype type of argument Pelem default value for argument Psym symbol corresponding to Pident when using the parameter list as a symbol table For template-parameter-list: Pident identifier of parameter Ptype if NULL, this is a type-parameter else the type for a parameter-declaration value argument Pelem default value for value argument Pdeftype default value for type-parameter Pptpl template-parameter-list for template-template-parameter Psym default value for template-template-parameter For template-arg-list: (actual arguments) Pident NULL Ptype type-name Pelem expression (either Ptype or Pelem is NULL) Psym SCtemplate for template-template-argument
Symbol* f
| function symbol |
Element types. These should be combined with storage classes.
This is to support compiling expressions within the context of a function.
Data definitions DTibytes 1..7 bytes DTabytes offset of bytes of data a { a data bytes } DTnbytes bytes of data a { a data bytes } a = offset DTazeros # of 0 bytes a DTsymsize same as DTazeros, but the type of the symbol gives the size DTcommon # of 0 bytes (in a common block) a DTxoff offset from symbol w a w = symbol number (pointer for CPP) a = offset DTcoff offset into code segment
© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_backend_cc.html