Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Calendar
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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 a local clone.

# dmd.backend.cc

Compiler implementation of the D programming language.
Authors:
Walter Bright
License:
Boost License 1.0

Source backend/cc.d

enum int `IDMAX`;
  Print out debugging information.
struct `Srcpos`;
  Position in source file
  pure nothrow void `set`(const(char)* `filename`, uint `linnum`, int `charnum`);
    Set fields of Srcpos
    Parameters:

    const(char)* `filename` | file name
    uint `linnum` | line number
    int `charnum` | character number

struct `Pstate`;
  Current 'state' of the compiler. Used to gather together most global variables. This struct is saved/restored during function body parsing.
struct `Cstate`;
  Global variables.
alias `ClassDeclaration_` = void*;
  Basic blocks: Basic blocks are a linked list of all the basic blocks in a function. startblock heads the list.
alias `BC` = int;
  Basic block control flow operators.
struct `BlockRange`;
  Range for blocks.
struct `symtab_t`;
  Functions
struct `meminit_t`;
  Item in list for member initializer.
struct `baseclass_t`;
  Base classes are a list of these.
alias `mptr_flags_t` = char;
  For virtual tables.
struct `TMF`;
  Information gathered about externally defined template member functions, member data, and member classes.
struct `TME`;
  Information gathered about primary member template explicit specialization.
struct `TMNE`;
  Information gathered about nested explicit specializations.
struct `TMNF`;
  Information gathered about nested class friends.
struct `template_t`;
  Special information for class templates.
alias `enum_flags_t` = uint;
  Special information for enums.
alias `struct_flags_t` = uint;
  Special information for structs.
nothrow @nogc inout(Symbol)* `list_symbol`(inout list_t `lst`);
  Symbol Table
alias `pflags_t` = uint;
  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
nothrow @nogc EHmethod `ehmethod`(Symbol* `f`);
  Parameters:

  Symbol* `f` | function symbol

  Returns:
  exception method for f
alias `FL` = int;
  Element types. These should be combined with storage classes.
struct `EEcontext`;
  This is to support compiling expressions within the context of a function.
struct `dt_t`;
  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

Copyright © 1999-2020 by the D Language Foundation | Page generated by Ddoc on Sat Aug 15 10:01:07 2020