Basic block control flow operators. *
Basic blocks: Basic blocks are a linked list of all the basic blocks in a function. startblock heads the list.
Element types. These should be combined with storage classes.
Special information for enums.
Functions
For virtual tables.
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
Special information for structs.
Return alignment of symbol.
Aver if Symbol is not only merely dead, but really most sincerely dead.
Determine if s may be affected if an assignment is done through a pointer.
Determine if symbol needs a 'this' pointer.
Symbol Table
Range for blocks.
Global variables.
This is to support compiling expressions within the context of a function.
Current 'state' of the compiler. Used to gather together most global variables. This struct is saved/restored during function body parsing.
//////// Position in source file
Information gathered about primary member template explicit specialization.
Information gathered about externally defined template member functions, member data, and member classes.
Information gathered about nested explicit specializations.
Information gathered about nested class friends.
Base classes are a list of these.
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
Item in list for member initializer.
Special information for class templates.
Common definitions
Compiler implementation of the D programming language.