https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92516
--- Comment #8 from David Binderman <dcb314 at hotmail dot com> --- Reduced C++ code: class a { public: typedef int b; operator b(); }; class c { public: constexpr int m_fn1() const; constexpr int d() const; int e; int f; }; constexpr int c::m_fn1() const { return e; } constexpr int c::d() const { return f; } class g { public: g(); constexpr void i(const c &) noexcept; int j; int k; int l; int m; }; constexpr void g::i(const c &n) noexcept { int v = l - j, h = m - k; j = n.m_fn1() - v / 2; k = n.d() - h / 2; l = j + v; m = k + h; } class o { void m_fn4() const; a p; } r; void o::m_fn4() const { g q; c t; q.i(t); r.p || 0; }