vsk added a comment.

In https://reviews.llvm.org/D34801#828382, @efriedma wrote:

> I'm going to look over the overall algorithm one more time to make sure this 
> direction makes sense. The current code for ending regions on 
> break/continue/return/noreturn doesn't really work well,


Maybe it's worth taking a step back and finding a way to fix that. As you 
alluded to with the FIXME, there are still some basic cases the current patch 
won't address:

  switch (x) {
    case 1: // Region set to end at the end of the second break.
    case 2:
      break;
    case 3:
    case 4:
      break;
  }



> and the way we handle multiple consecutive case statments isn't really right,

I agree. It'd be worth seeing whether we can avoid pushing a new region for a 
case if we know fallthrough occurs.

> and I want to make sure I'm not going to end up reverting this.  And I need 
> to run some tests to make sure I'm not introducing any crashes.  If nothing 
> is wrong, I'll commit tomorrow.

I suspect that fixing switch/cases in a more general way would require 
reverting this and I know I'll revisit this in the coming weeks. Still, this is 
an improvement and if nothing goes wrong during testing your plan sgtm.


Repository:
  rL LLVM

https://reviews.llvm.org/D34801



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to