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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Here is another testcase, the only use of _BitInt is in the cast, everything
else is a bitfield:
```
struct a
{
  unsigned t:(sizeof(int)*8-1);
};

typedef unsigned _BitInt(sizeof(int)*8-1) ub31;
struct a ub63_0;
struct a ub63_1;

void
foo (void)
{
   ub63_1.t = (ub31)
   ((ub63_0.t |  (-1u>>1) ) >> 1 | (ub63_0.t | 1u) <<  4);
}
```

I still can't figure out why the cast is needed though.

Reply via email to