https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80763
--- Comment #1 from David Binderman <dcb314 at hotmail dot com> ---
Here is the reduced code
struct b {
virtual ~b();
};
struct c {
virtual unsigned d(unsigned, unsigned);
virtual unsigned f(unsigned, unsigned, unsigned, unsigned) = 0;
};
template <class e> class i : e, c {
public:
float *g[e::h];
unsigned d(unsigned k, unsigned) {
bool j;
j ? f(k, k, 1, 1) : 0;
}
};
struct l : b {
enum { h };
};
class n : i<l> {
unsigned f(unsigned, unsigned, unsigned, unsigned) {
float *m = g[0];
float a[512];
m[0] = a[0];
}
virtual void o();
};
void n::o() {}