https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68806
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |trippels at gcc dot gnu.org --- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- ICEs with -O3: enum { LUMA_12x16 }; typedef int (*pixelcmp_t)(const unsigned char *, long, const unsigned char *, long); struct A { struct { pixelcmp_t sad; } pu[]; }; template <int lx, int> int sad(const unsigned char *p1, long p2, const unsigned char *, long) { int a; for (int y; y; y++) { for (int x = 0; x < lx; x++) a += p1[x]; p1 += p2; } return a; } void setupPixelPrimitives_c(A &p1) { p1.pu[LUMA_12x16].sad = sad<12, 16>; }