https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63362
--- Comment #25 from Jason Merrill <jason at gcc dot gnu.org> --- And the ICE reduces to struct A { A(...); }; int main() { volatile A a; volatile A a2(a); } which crashes from infinite recursion trying to copy a for passing to .... So, not an __is_trivially_constructible issue.