https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67559
Daniel Krügler <daniel.kruegler at googlemail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |daniel.kruegler@googlemail. | |com --- Comment #1 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- According the release notes of gcc 5 (https://gcc.gnu.org/gcc-5/changes.html) this is by design: "G++ now allows passing a non-trivially-copyable class via C varargs, which is conditionally-supported with implementation-defined semantics in the standard. This uses the same calling convention as a normal value parameter." and as you already note this behaviour is supported by the C++11 standard.