[Bug tree-optimization/66422] [5 Regression] -Warray-bounds false positive with -O3
hubicka at ucw dot cz
gcc-bugzilla@gcc.gnu.org
Thu Jun 11 22:01:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66422
--- Comment #8 from Jan Hubicka <hubicka at ucw dot cz> ---
>
> run_foo ()
> {
> ...
> <bb 10>:
> _33 = myfoo_28->buf[3];
> if (_33 != 1)
> goto <bb 13>;
> else
> goto <bb 11>;
>
> <bb 11>:
> _34 = (int) _27;
> if (_34 > 4)
> goto <bb 12>;
> else
> goto <bb 13>;
>
> <bb 12>:
> __builtin_unreachable ();
> _35 = myfoo_28->buf[4];
>
> <bb 13>:
> # _36 = PHI <0(2), 1(3), 0(4), 1(5), 0(6), 1(7), 0(8), 1(9), 0(10), 1(11),
> 0(12)>
> if (_36 != 0)
> goto <bb 15>;
> else
> goto <bb 14>;
>
> <bb 14>:
> i_37 = 1;
>
> <bb 15>:
> # _2 = PHI <0(13), -1(14)>
> return _2;
>
> and the unreachable () remains in the CFG.
>
> Honza - it seems that remove_exits_and_undefined_stmts inserts these
> unreachable calls but fails to split the BBs.
>
> I have a patch.
Hmm, Indeed. I have expected cleanup_cfg to get rid of _35 = myfoo_28->buf[4];.
I suppose this changed with your compile time work for GCC 5?
Honza
More information about the Gcc-bugs
mailing list