This came up during the Windows bot failure discussing after D105471 . See
also 3d9a9fa691 .
47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
struct Empty {};
|
|
class EmptyClass {};
|
|
class alignas(4) EmptyClassAligned {};
|
|
class ClassEmptyMember {
|
|
int i[0];
|
|
};
|
|
|
|
struct SingleMember {
|
|
int i;
|
|
};
|
|
class SingleMemberClass {
|
|
int i;
|
|
};
|
|
|
|
struct PaddingMember {
|
|
int i;
|
|
char c;
|
|
};
|
|
class PaddingMemberClass {
|
|
int i;
|
|
char c;
|
|
};
|
|
|
|
const unsigned sizeof_empty = sizeof(Empty);
|
|
const unsigned sizeof_empty_class = sizeof(EmptyClass);
|
|
const unsigned sizeof_empty_class_aligned = sizeof(EmptyClassAligned);
|
|
const unsigned sizeof_class_empty_member = sizeof(ClassEmptyMember);
|
|
const unsigned sizeof_single = sizeof(SingleMember);
|
|
const unsigned sizeof_single_class = sizeof(SingleMemberClass);
|
|
const unsigned sizeof_padding = sizeof(PaddingMember);
|
|
const unsigned sizeof_padding_class = sizeof(PaddingMemberClass);
|
|
|
|
int main() {
|
|
Empty empty;
|
|
EmptyClass empty_class;
|
|
EmptyClassAligned empty_class_aligned;
|
|
ClassEmptyMember class_empty_member;
|
|
SingleMember single;
|
|
SingleMemberClass single_class;
|
|
PaddingMember padding;
|
|
PaddingMemberClass padding_class;
|
|
// Make sure globals are used.
|
|
return sizeof_empty + sizeof_empty_class + sizeof_class_empty_member +
|
|
sizeof_single + +sizeof_empty_class_aligned + sizeof_single_class +
|
|
sizeof_padding + sizeof_padding_class;
|
|
}
|