[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