// Pragma needed cause of gcc bug on windows: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991

#include <assert.h>

#ifdef _MSC_VER
#pragma pack(push,1)
struct Foo {
    char a;
    short b;
    char c;
};
#else
#pragma pack(1)
struct __attribute__((packed)) Foo {
    char a;
    short b;
    char c;
};
#endif

struct Foo foo(struct Foo foo) {
    assert(foo.a == 1);
    assert(foo.b == 2);
    assert(foo.c == 3);
    return foo;
}
