https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119319
--- Comment #12 from Jason Merrill <jason at gcc dot gnu.org> --- We don't error in general because we defer the instantiation of ~vvv until EOF, after the definition of Xyzzy, as allowed by https://eel.is/c++draft/temp#point-7 -- which also seems to say that the testcase is IFNDR because that makes a difference. I can't think why RETURNS_THIS would prevent that deferral. So given IFNDR I think the compiler is conforming whether or not it gives an error. But it would be good to understand why the target makes a difference, if it still does.