https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117900
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
GCC doesn't just require an accessible copy constructor, it uses it:
struct S {
S() {}
S(const S &) { throw; }
};
using Sref = const S&;
int main()
{
S s;
(void)Sref{s};
}
terminate called without an active exception
Aborted (core dumped)
