aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/type-attribute-align.c
diff options
context:
space:
mode:
Diffstat (limited to 'validation/type-attribute-align.c')
-rw-r--r--validation/type-attribute-align.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/validation/type-attribute-align.c b/validation/type-attribute-align.c
new file mode 100644
index 00000000..d9358bff
--- /dev/null
+++ b/validation/type-attribute-align.c
@@ -0,0 +1,20 @@
+#define __aligned(N) __attribute__((aligned(N)))
+#define alignof(X) __alignof__(X)
+
+struct s {
+ short a, b, c;
+} __aligned(2*sizeof(short));
+
+static int fs(void) { return sizeof(struct s); }
+static int fa(void) { return alignof(struct s); }
+
+void main(void)
+{
+ _Static_assert( sizeof(struct s) == 4 * sizeof(short), "size");
+ _Static_assert(alignof(struct s) == 2 * sizeof(short), "alignment");
+}
+
+/*
+ * check-name: type-attribute-align
+ * check-known-to-fail
+ */