rust/tests/run-make/extern-fn-with-packed-struct/test.c

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

27 lines
439 B
C
Raw Normal View History

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
#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)
struct __attribute__((packed)) Foo {
char a;
short b;
char c;
};
2015-08-26 18:57:56 -05:00
#endif
struct Foo foo(struct Foo foo) {
assert(foo.a == 1);
assert(foo.b == 2);
assert(foo.c == 3);
return foo;
}