https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91576

--- Comment #11 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to David Binderman from comment #7)
> After much slow reduction, the reduced C++ source code seems
> to be
> 
> class b;
> struct c {
>   using aj = b *;
> };
> struct d {
>   using aj = c::aj;
> };
> struct f {
>   using aj = d::aj;
> };
> template <class, class ao> f::aj ap(ao);
> template <typename aq> class g {
> public:
>   aq begin();
>   aq end();
> };
> class av {
> public:
>   virtual int *aw(unsigned long);
> };
> template <typename ax, int *(av::*ay)(ax)> struct h {
>   long ba;
>   av bb;
>   void bc() { ba = long((&bb->*ay)(1)); }
> };
> using bd = h<unsigned long, &av::aw>;
> class b {
>   struct i {
>     bd bf;
>     void bg() { bf.bc(); }
>   };
> 
> public:
>   using bh = int *;
>   using bi = g<bh>;
>   i bj;
>   bi bases() { bj.bg(); }
> };
> class j {
>   virtual bool bl(const int *, unsigned, int, int, int);
> };
> class k : j {
>   bool bl(const int *l, unsigned, int, int, int) {
>     auto e = ap<b>(l);
>     for (int a : e->bases())
>       ;
>   }
> };
> void bp() { k(); }

This is dup of PR92201 which is fixed now.

Reply via email to