From 285933f8ca633495e7e4d03481a58ead3323c504 Mon Sep 17 00:00:00 2001 From: Xavier Leroy Date: Thu, 7 Jun 2018 15:26:02 +0200 Subject: Remove the `_Alignas(expr)` construct (#125) The `_Alignas(expr)` construct is not C11, only `_Alignas(type)` is. --- test/regression/Results/alignas | 18 +++++++-------- test/regression/alignas.c | 50 +++++++++++++++++++---------------------- 2 files changed, 32 insertions(+), 36 deletions(-) (limited to 'test/regression') diff --git a/test/regression/Results/alignas b/test/regression/Results/alignas index 581a4377..9372096a 100644 --- a/test/regression/Results/alignas +++ b/test/regression/Results/alignas @@ -1,9 +1,9 @@ -a: size = 4, alignment = 16, address mod 16 = 0 -b: size = 12, alignment = 16, address mod 16 = 0 -bb: size = 12, alignment = 16, address mod 16 = 0 -c: size = 32, alignment = 16, address mod 16 = 0 -d: size = 32, alignment = 64, address mod 64 = 0 -e: size = 16, alignment = 16, address mod 16 = 0 -f: size = 16, alignment = 32, address mod 32 = 0 -g: size = 96, alignment = 16, address mod 16 = 0 -h: size = 192, alignment = 64, address mod 64 = 0 +a: size = 4, address mod 16 = 0 +b: size = 12, address mod 16 = 0 +bb: size = 12, address mod 16 = 0 +c: size = 32, address mod 16 = 0 +d: size = 32, address mod 64 = 0 +e: size = 16, address mod 16 = 0 +f: size = 16, address mod 32 = 0 +g: size = 96, address mod 16 = 0 +h: size = 192, address mod 64 = 0 diff --git a/test/regression/alignas.c b/test/regression/alignas.c index b3754039..23966b59 100644 --- a/test/regression/alignas.c +++ b/test/regression/alignas.c @@ -2,16 +2,12 @@ #include -#if __STDC_VERSION__ < 201100 && defined(__GNUC__) -#define _Alignas(x) __attribute__((aligned(x))) -#define _Alignof(x) __alignof__(x) -#endif - #ifdef _Alignas #undef _Alignas #endif -#ifdef _Alignof -#undef _Alignof + +#if __STDC_VERSION__ < 201100 && defined(__GNUC__) +#define _Alignas(x) __attribute__((aligned(x))) #endif /* Base type */ @@ -72,28 +68,28 @@ char filler8; int main() { - printf("a: size = %u, alignment = %u, address mod 16 = %u\n", - (unsigned) sizeof(a), (unsigned) _Alignof(a), ((unsigned) &a) & 0xF); - printf("b: size = %u, alignment = %u, address mod 16 = %u\n", - (unsigned) sizeof(b), (unsigned) _Alignof(b), ((unsigned) &b) & 0xF); - printf("bb: size = %u, alignment = %u, address mod 16 = %u\n", - (unsigned) sizeof(bb), (unsigned) _Alignof(bb), ((unsigned) &bb) & 0xF); + printf("a: size = %u, address mod 16 = %u\n", + (unsigned) sizeof(a), ((unsigned) &a) & 0xF); + printf("b: size = %u, address mod 16 = %u\n", + (unsigned) sizeof(b), ((unsigned) &b) & 0xF); + printf("bb: size = %u, address mod 16 = %u\n", + (unsigned) sizeof(bb), ((unsigned) &bb) & 0xF); #if 0 - printf("bbb: size = %u, alignment = %u, address mod 16 = %u\n", - (unsigned) sizeof(bbb), (unsigned) _Alignof(bbb), ((unsigned) &bbb) & 0xF); + printf("bbb: size = %u, address mod 16 = %u\n", + (unsigned) sizeof(bbb), ((unsigned) &bbb) & 0xF); #endif - printf("c: size = %u, alignment = %u, address mod 16 = %u\n", - (unsigned) sizeof(c), (unsigned) _Alignof(c), ((unsigned) &c) & 0xF); - printf("d: size = %u, alignment = %u, address mod 64 = %u\n", - (unsigned) sizeof(d), (unsigned) _Alignof(d), ((unsigned) &d) & 0x3F); - printf("e: size = %u, alignment = %u, address mod 16 = %u\n", - (unsigned) sizeof(e), (unsigned) _Alignof(e), ((unsigned) &e) & 0xF); - printf("f: size = %u, alignment = %u, address mod 32 = %u\n", - (unsigned) sizeof(f), (unsigned) _Alignof(f), ((unsigned) &f) & 0x1F); - printf("g: size = %u, alignment = %u, address mod 16 = %u\n", - (unsigned) sizeof(g), (unsigned) _Alignof(g), ((unsigned) &g) & 0xF); - printf("h: size = %u, alignment = %u, address mod 64 = %u\n", - (unsigned) sizeof(h), (unsigned) _Alignof(h), ((unsigned) &h) & 0x3F); + printf("c: size = %u, address mod 16 = %u\n", + (unsigned) sizeof(c), ((unsigned) &c) & 0xF); + printf("d: size = %u, address mod 64 = %u\n", + (unsigned) sizeof(d), ((unsigned) &d) & 0x3F); + printf("e: size = %u, address mod 16 = %u\n", + (unsigned) sizeof(e), ((unsigned) &e) & 0xF); + printf("f: size = %u, address mod 32 = %u\n", + (unsigned) sizeof(f), ((unsigned) &f) & 0x1F); + printf("g: size = %u, address mod 16 = %u\n", + (unsigned) sizeof(g), ((unsigned) &g) & 0xF); + printf("h: size = %u, address mod 64 = %u\n", + (unsigned) sizeof(h), ((unsigned) &h) & 0x3F); return 0; } -- cgit