Just saw that you "accepted" this in phab together with your "so I guess it's okay" comment ;)
Submitted as r209531. On Fri, May 23, 2014 at 6:36 PM, Manuel Klimek <[email protected]> wrote: > On Thu, May 22, 2014 at 6:42 PM, Jordan Rose <[email protected]>wrote: > >> Okay, I think I understand now. If the first dead statement is the first >> expression in a return statement, and then there's a temporary destructors >> block, and then the return statement, then we'd still want to treat that as >> part of the return statement. And that happens right now because we don't >> optimize out the case with no control flow. >> >> I'm worried, though, that this will catch something in a dead else block >> and go sailing off the end to look for a return statement, > > > Btw, with the current implementation we will not sail off the end of > else-blocks: > + if (Current->pred_size() > 1) { > + // If there is more than one predecessor, we're dealing with > incoming > + // control flow - if the return statement is in that block, it > might > + // well be reachable via a different control flow, thus it's not > dead. > + return false; > } > > Let me know if you want me to change anything, or if you have an idea for > a fundamentally different approach. > > build a parent map, and then not actually find anything (of course). It >> seems like a fair amount of extra work. Then again, we have already decided >> to emit a diagnostic at this point, so I guess it's okay. >> >> http://reviews.llvm.org/D3638 >> >> >> >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
