https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82763
--- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> --- I think that the underlying issue is that in the front-end the code implementing the traits, in particular, say, trivial_type_p, isn't directly used elsewhere (should double check this, but I'm pretty sure), thus an issue like this one may show up in the library first, which seems a bit weird, at first. Conversely, it would be very interesting if we had a pure C++ testcase on which the front-end misbehaves exactly because it has the wrong concept of POD-ness wrt volatile. Do we have one?