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);
      |                         ^

Reply via email to