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  }