https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83170
--- Comment #1 from David Binderman <dcb314 at hotmail dot com> --- Reduced C++ code seems to be: int a; enum bk { bm }; enum bn { bo }; enum { bp, bq, br, bs }; class d { public: d(); char b; void bv(char, bn); char bw[]; }; d::d() { bv(b, bo); } short c; void d::bv(char e, bn f) { bw[bp] = e; bw[bq] = f; bw[br] = c >> 8; bw[bs] = c; } class g { bool cb(); long cc(bk, const char *, unsigned, char *, unsigned, int, int *); void cd(d *, int); }; bool g::cb() { int *cg; char ch[1]; cc(bm, nullptr, 0, ch, sizeof(ch), a, cg); } long g::cc(bk e, const char *, unsigned, char *, unsigned, int h, int *) { d cl; cl.bv(e, bo); cd(&cl, h); }