https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115797
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Doing this is undefined (and annoying). [using.headers] in the standard says "A translation unit shall include a header only outside of any declaration or definition"