https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100209
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ppalka at gcc dot gnu.org Last reconfirmed| |2021-04-23 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> --- Confirmed. A bit more reduced: struct A { int a = 0; }; template <class Derived> struct B { int b = 0; constexpr Derived f(int n) { return *static_cast<Derived*>(this); } }; struct C : A, B<C> { }; constexpr C c = C().f(10); 100209.C:14:22: in ‘constexpr’ expansion of ‘C().C::<anonymous>.B<C>::f(10)’ 100209.C:14:25: error: ‘*(const C*)((C*)(((B<C>*)this) + -4))’ is not a constant expression 14 | constexpr C c = C().f(10); | ^