Home | History | Annotate | Download | only in dmd

Lines Matching refs:BlockExit

7  * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/blockexit.d, _blockexit.d)
9 * Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/blockexit.d
12 module dmd.blockexit;
32 * BE stands for BlockExit.
63 int blockExit(Statement s, FuncDeclaration func, bool mustNotThrow)
65 extern (C++) final class BlockExit : Visitor
82 printf("Statement::blockExit(%p)\n", s);
125 //printf("CompoundStatement.blockExit(%p) %d result = x%X\n", cs, cs.statements.dim, result);
163 if (blockExit(s, func, mustNotThrow) != BE.halt && s.hasCode() &&
170 result |= blockExit(s, func, mustNotThrow);
184 int r = blockExit(s, func, mustNotThrow);
194 //printf("ScopeStatement::blockExit(%p)\n", s.statement);
195 result = blockExit(s.statement, func, mustNotThrow);
208 result = blockExit(s._body, func, mustNotThrow);
234 result = blockExit(s._init, func, mustNotThrow);
252 int r = blockExit(s._body, func, mustNotThrow);
267 result |= blockExit(s._body, func, mustNotThrow) & ~(BE.break_ | BE.continue_);
278 //printf("IfStatement::blockExit(%p)\n", s);
285 result |= blockExit(s.ifbody, func, mustNotThrow);
289 result |= blockExit(s.elsebody, func, mustNotThrow);
293 result |= blockExit(s.ifbody, func, mustNotThrow);
294 result |= blockExit(s.elsebody, func, mustNotThrow);
296 //printf("IfStatement::blockExit(%p) = x%x\n", s, result);
301 result = blockExit(s.ifbody, func, mustNotThrow);
303 result |= blockExit(s.elsebody, func, mustNotThrow);
323 result |= blockExit(s._body, func, mustNotThrow);
336 result = blockExit(s.statement, func, mustNotThrow);
341 result = blockExit(s.statement, func, mustNotThrow);
369 //printf("BreakStatement::blockExit(%p) = x%x\n", s, s.ident ? BE.goto_ : BE.break_);
380 result = blockExit(s._body, func, mustNotThrow);
387 result |= blockExit(s._body, func, mustNotThrow);
393 result = blockExit(s._body, func, false);
401 int cresult = blockExit(c.handler, func, mustNotThrow);
409 // leave blockExit flags of the body
425 blockExit(s._body, func, mustNotThrow);
434 result = blockExit(s._body, func, false);
439 finalresult = blockExit(s.finalbody, func, false);
451 blockExit(s._body, func, mustNotThrow);
453 blockExit(s.finalbody, func, mustNotThrow);
493 //printf("GotoStatement::blockExit(%p)\n", s);
499 //printf("LabelStatement::blockExit(%p)\n", s);
500 result = blockExit(s.statement, func, mustNotThrow);
526 scope BlockExit be = new BlockExit(func, mustNotThrow);