modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/alloca-1.c (about) 1 /* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */ 2 /* Verify that alloca storage is sufficiently aligned. */ 3 /* ??? May fail if BIGGEST_ALIGNMENT > STACK_BOUNDARY. Which, I guess 4 can only happen on !STRICT_ALIGNMENT targets. */ 5 6 typedef __SIZE_TYPE__ size_t; 7 8 struct dummy { int x __attribute__((aligned)); }; 9 #define BIGGEST_ALIGNMENT __alignof__(struct dummy) 10 11 _Bool foo(void) 12 { 13 char *p = __builtin_alloca(32); 14 return ((size_t)p & (BIGGEST_ALIGNMENT - 1)) == 0; 15 } 16 17 int main() 18 { 19 if (!foo()) 20 abort (); 21 return 0; 22 }