https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64110
--- Comment #2 from Thiago Macieira <thiago at kde dot org> --- creduce reduced to the following testcase: ==== class A { public: short &m_fn1() { return ucs; } short ucs; }; class C { public: int m_fn2(); } a; A *b; C c; void fn1(A p1) { while (&a) { int d = c.m_fn2(); for (int i; i < d; ++i) b++->m_fn1() = p1.m_fn1(); } } ====