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.


Compiler implementation of the D programming language.

Source: s2ir.d

void setScopeIndex(Blockx* blx, block* b, int scope_index);
Generate code to set index into scope table.
block* block_calloc(Blockx* blx);
Allocate a new block, and set the tryblock.
Label* getLabel(IRState* irs, Blockx* blx, Statement s);
Get or create a label declaration.
block* labelToBlock(IRState* irs, Loc loc, Blockx* blx, LabelDsymbol label, int flag = 0);
Convert label to block.
void incUsage(IRState* irs, Loc loc);
Add in code to increment usage count for linnum.
void insertFinallyBlockCalls(block* startblock);
Insert finally block calls when doing a goto from inside a try block to outside. Done after blocks are generated because then we know all the edges of the graph, but before the Bpred's are computed.
block* startblock first block in function