[Bug ipa/70646] Corrupt truncated function

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Apr 14 08:45:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70646

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-04-14
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |jamborm at gcc dot gnu.org
          Component|c                           |ipa
     Ever confirmed|0                           |1

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

;; Function broken (broken, funcdef_no=2, decl_uid=1764, cgraph_uid=2,
symbol_order=2) (executed once)

__attribute__((noclone, noinline))
broken (u64 * shost)
{
  <bb 2>:
  __builtin_unreachable ();

}

after inlining we see:

  <bb 2>:
  node_name[0] = 255;
  node_name[1] = 255;
  node_name[2] = 255;
  node_name[3] = 255;
  node_name[4] = 255;
  node_name[5] = 255;
  node_name[6] = 255;
  node_name[7] = 255;
  _14 = MEM[(const u64 *)&node_name];
  _15 = __builtin_constant_p (_14);
  if (_15 != 0)
    goto <bb 3>;
  else
    goto <bb 4>;

...

  <bb 4>:
  iftmp.0_37 = _39(D);
  __builtin_unreachable ();

which seems to be introduced by IPA CP:

__builtin_unreachable/9 (__builtin_unreachable) @0x7f1563274cf0
  Type: function
  Visibility: external public
  References:
  Referring:
  Availability: not_available
  First run: 0
  Function flags:
  Called by: wwn_to_u64.constprop.0/8
  Calls:
wwn_to_u64.constprop.0/8 (wwn_to_u64.constprop) @0x7f1563274000
  Type: function definition analyzed
  Visibility:
  References:
  Referring:
  Function wwn_to_u64.constprop/8 is inline copy in broken/2
  Clone of wwn_to_u64/1
  Availability: local
  First run: 0
  Function flags: local
  Called by: broken/2 (inlined) (1.00 per call)
  Calls: __builtin_constant_p/5 (1.00 per call) __builtin_unreachable/9


More information about the Gcc-bugs mailing list