From 1b8fbbd843ddeb5fc81c9303db9c590a436d499b Mon Sep 17 00:00:00 2001 From: William Casarin Date: Mon, 9 Jul 2018 12:10:32 -0700 Subject: progress --- ccan/alignof/alignof.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 ccan/alignof/alignof.h (limited to 'ccan/alignof/alignof.h') diff --git a/ccan/alignof/alignof.h b/ccan/alignof/alignof.h new file mode 100644 index 0000000..9a02f18 --- /dev/null +++ b/ccan/alignof/alignof.h @@ -0,0 +1,20 @@ +/* CC0 (Public domain) - see LICENSE file for details */ +#ifndef CCAN_ALIGNOF_H +#define CCAN_ALIGNOF_H +#include "config.h" + +/** + * ALIGNOF - get the alignment of a type + * @t: the type to test + * + * This returns a safe alignment for the given type. + */ +#if HAVE_ALIGNOF +/* A GCC extension. */ +#define ALIGNOF(t) __alignof__(t) +#else +/* Alignment by measuring structure padding. */ +#define ALIGNOF(t) ((char *)(&((struct { char c; t _h; } *)0)->_h) - (char *)0) +#endif + +#endif /* CCAN_ALIGNOF_H */ -- cgit v1.2.3