https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119259
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I am suspecting GCC doing the correct thing. In my last reduced testcase, move intermidiate below not_equatable and change the type of the field t to not_equatable and see that all 3 now reject the code.