[Bug c++/63472] transaction_atomic within while loop causes ICE
ak at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Oct 8 05:58:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63472
--- Comment #4 from ak at gcc dot gnu.org ---
Reduced test cases for all three crashes. I suspect multiple have a similar
root cause (except perhaps for the expand_expr_addr_expr_1 one)
It looks like the transaction code messes up cfgloops.
copy_bbs:
(illegal code due to goto into transaction?)
g_56[];
fn1() {
int *p_79;
if (g_56[7])
__transaction_atomic {
lbl_196:
*p_79 = 1;
}
else
goto lbl_196;
}
expand_expr_addr_expr_1:
struct {
unsigned : 7;
signed f6 : 4
} g_35;
safe_rshift_func_uint16_t_u_s() {}
func_28() {
__transaction_atomic { safe_rshift_func_uint16_t_u_s(g_35.f6); }
}
copy_loops:
func_65() {
__transaction_atomic {
for (;;)
func_65();
}
}
More information about the Gcc-bugs
mailing list