This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/47918] [4.6 Regression] noreturn discovery broke non local gotos on m68k
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 7 Mar 2011 13:54:15 +0000
- Subject: [Bug rtl-optimization/47918] [4.6 Regression] noreturn discovery broke non local gotos on m68k
- Auto-submitted: auto-generated
- References: <bug-47918-4@http.gcc.gnu.org/bugzilla/>
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