/** Tests covering alignment operators. sign: signed, unsigned type: char, int, long */ #include #include #if defined (__SDCC) || __STDC_VERSION__ >= 201112L #include char alignas (0) alignas({sign} {type}) a; char alignas (int) alignas({sign} {type}) alignas(long) b; char alignas ({sign} {type}) alignas(0) c; #endif void testAlignof(void) { #if defined (__SDCC) || __STDC_VERSION__ >= 201112L ASSERT(alignof(char) <= alignof({sign} {type})); ASSERT(alignof({sign} {type}) <= alignof(max_align_t)); #ifdef __SDCC /* sdcc currently only supports architectures that do not have alignment restrictions. */ ASSERT(alignof({sign} {type}) == 1); ASSERT(alignof(max_align_t) == 1); #endif #endif }