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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2024-01-15
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
          Component|tree-optimization           |middle-end

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed, scrub is changing the IR to:
```
  void * .strub.watermark.2;
  _BitInt(146) retval.1;

  <bb 2> [local count: 10000]:
  __builtin___strub_enter (&.strub.watermark.2);
  retval.1_3 = foo.strub.0 (&.strub.watermark.2);
  __builtin___strub_leave (&.strub.watermark.2);
  .strub.watermark.2 ={v} {CLOBBER};
  return retval.1_3;

```
Which looks fine but bitintlower is not expecting a gimple ssa of _BitInt(N) in
the GIMPLE_RETURN .

Here is a reduced _GIMPLE testcase without the need for -fstrub=internal :
```
_BitInt(146)
foo1(void);

_BitInt(146)
__GIMPLE()
foo(void) 
{
  _BitInt(146) t;
  t = foo1();
  return t;
}
```

Reply via email to