From https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336 GCC passes empty class as one-byte record. On x86-64, it is always passed on stack. Clang skips empty class the same way as C empty struct. Empty C++ class is a corner case which isn't covered in psABI nor C++ ABI. Should C++ ABI specify how it is passed? -- H.J.