2021-06-23 15:26:46 -05:00
|
|
|
// Pragma needed cause of gcc bug on windows: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991
|
2015-08-26 18:57:56 -05:00
|
|
|
|
2017-08-23 16:38:45 -05:00
|
|
|
#include <assert.h>
|
|
|
|
|
2015-08-26 18:57:56 -05:00
|
|
|
#ifdef _MSC_VER
|
|
|
|
#pragma pack(push,1)
|
|
|
|
struct Foo {
|
|
|
|
char a;
|
|
|
|
short b;
|
|
|
|
char c;
|
|
|
|
};
|
|
|
|
#else
|
2014-08-19 15:32:41 -05:00
|
|
|
#pragma pack(1)
|
2014-08-18 13:12:46 -05:00
|
|
|
struct __attribute__((packed)) Foo {
|
|
|
|
char a;
|
|
|
|
short b;
|
|
|
|
char c;
|
|
|
|
};
|
2015-08-26 18:57:56 -05:00
|
|
|
#endif
|
2014-08-18 13:12:46 -05:00
|
|
|
|
|
|
|
struct Foo foo(struct Foo foo) {
|
2017-08-23 16:38:45 -05:00
|
|
|
assert(foo.a == 1);
|
|
|
|
assert(foo.b == 2);
|
|
|
|
assert(foo.c == 3);
|
2014-08-18 13:12:46 -05:00
|
|
|
return foo;
|
|
|
|
}
|