https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92695
--- Comment #2 from Toni Neubert <lutztonineubert at gmail dot com> --- Copy paste error. The above example should be: ``` struct A { constexpr virtual int get() = 0; constexpr virtual int set(A *o) = 0; }; struct B : A { constexpr int get() override { return 10; } constexpr int set(A *o) override { a = o; return 20; } A *a{}; }; constexpr auto addressof = [](A &n) { return &n; }; struct Foo { B b[1]; A* curr_{addressof(b[0])}; constexpr int add() { return curr_->set(addressof(b[0])); } }; constexpr int get() { Foo f; return f.add(); } constexpr auto a = get(); int main() { return a; } ```