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

--- Comment #2 from David Binderman <dcb314 at hotmail dot com> ---
Here is the reduced C++ code:

typedef unsigned a;
typedef char b;
typedef struct {
  a *c;
} d;
int e(d *f) {
  if (f)
    return *f->c;
}
a g(d *f) { return e(f); }
typedef struct {
  b channel;
} h;
b *j(d *f, int channel, b *dest) {
  int k = 80, i;
  for (i = 0; i < 4; ++i, k = 1)
    if (channel & k)
      dest[i] = g(f);
  return dest;
}
void l(int, b *dest, b *m) {
  int i;
  for (i = 0; i < 4; ++i)
    dest[i] = m[i];
}
b n(d *f) {
  for (;;) {
    h *o;
    b *dest;
    b p[4];
    if (j(f, o->channel, p))
      l(o->channel, dest, p);
  }
}

Reply via email to