[Bug sanitizer/60649] [4.9 Regression][ASAN] Bogus "'y' may be used uninitialized" warning (affects bootstrap-asan)
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 25 23:59:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60649
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Code wise, one has
rtx y;
((void) (!(((enum machine_mode) (x)->mode) ==
VOIDmode) ? fancy_abort ("../../gcc/explow.c", 87, __FUNCTION__),
0 : 0));
restart:
code = ((enum rtx_code) (x)->code);
y = x;
And in test.ii.004t.gimple:
struct rtx_def * y;
...
D.2460 = x->mode;
if (D.2460 != 0) goto <D.2461>; else goto <D.2462>;
<D.2461>:
fancy_abort ("../../gcc/explow.c", 87, &__FUNCTION__);
<D.2462>:
restart:
D.2463 = x->code;
code = (rtx_code) D.2463;
y = x;
But in test.ii.169t.optimized:
struct rtx_def * y_lsm.5;
struct rtx_def * y;
...
_6 = x_5(D)->mode;
if (_6 != 0)
goto <bb 5>;
else
goto <bb 6>;
<bb 5>:
__builtin___asan_handle_no_return ();
fancy_abort ("../../gcc/explow.c", 87, &__FUNCTION__);
<bb 6>:
y_lsm.5_80 = y; // <<<<<<<<<<<<<<
# x_1 = PHI <x_5(D)(6), x_10(12)>
# y_lsm.5_8 = PHI <y_lsm.5_80(6), x_1(12)>
restart:
...
if (_39 != 0)
goto <bb 8>;
else
goto <bb 9>;
<bb 8>:
# y_lsm.5_87 = PHI <y_lsm.5_8(7)>
# _88 = PHI <_29(7)>
y = y_lsm.5_87;
__builtin___asan_report_load2 (_88);
More information about the Gcc-bugs
mailing list