https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64489
Bug ID: 64489 Summary: A simple struct wrapping a const int is not trivially copyable Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ville.voutilainen at gmail dot com CC: jason at redhat dot com struct X {const int val;}; static_assert(__is_trivially_copyable(const int), ""); static_assert(__is_trivially_copyable(X), ""); The second assertion fails. It shouldn't, because const int has no non-trivial copy/move constructors or assignment operators, and the first assertion succeeds. Clang accepts the code.