/* Verify that alloca storage is sufficiently aligned. */ /* ??? May fail if BIGGEST_ALIGNMENT > STACK_BOUNDARY. Which, I guess can only happen on !STRICT_ALIGNMENT targets. */ typedef __SIZE_TYPE__ size_t; struct dummy { int x __attribute__((aligned)); }; #define BIGGEST_ALIGNMENT __alignof__(struct dummy) _Bool foo(void) { char *p = __builtin_alloca(32); return ((size_t)p & (BIGGEST_ALIGNMENT - 1)) == 0; } int main() { if (!foo()) abort (); return 0; }