This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/47918] [4.6 Regression] noreturn discovery broke non local gotos on m68k


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47918

--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-03-07 13:53:50 UTC ---
I believe that the nonlocal gotos should be represented correctly in function
marked noreturn. So i think noreturn function can do nonlocal goto...

I get following CFG:

x (int a)
{
  struct FRAME.x FRAME.0;

  # BLOCK 2 freq:10000
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  y (a_1(D)); [static-chain: &FRAME.0]
  # SUCC: 3 [100.0%]  (ab,exec)

  # BLOCK 3 freq:10000
  # PRED: 2 [100.0%]  (ab,exec)
<L0>: [non-local]
  # SUCC: 4 [100.0%]  (fallthru,exec)

  # BLOCK 4 freq:10000
  # PRED: 3 [100.0%]  (fallthru,exec)
xlab:
  return a_1(D);
  # SUCC: EXIT [100.0%]

}

this seems all right (i.e. there is abnormal edge to BB 3 for non-local goto)
We need to work out what really goes wrong for m68.

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]