1  /* PR middle-end/23848 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-optimized" } */
       4  /* { dg-require-effective-target alloca } */
       5  
       6  void bar1 (char *, int);
       7  void foo1 (int size)
       8  {
       9    char temp[size];
      10    temp[size-1] = '\0';
      11    bar1 (temp, size);
      12  }
      13  
      14  void bar2 (char *, char *, char *, char *, int);
      15  void foo2 (int size)
      16  {
      17    char temp[size];
      18    temp[size-1] = '\0';
      19    {
      20      char temp2[size];
      21      {
      22        char temp3[size];
      23        {
      24  	char temp4[size];
      25  	bar2 (temp, temp2, temp3, temp4, size);
      26        }
      27      }
      28    }
      29  }
      30  
      31  /* { dg-final { scan-tree-dump-not "__builtin_stack_save" "optimized"} } */
      32  /* { dg-final { scan-tree-dump-not "__builtin_stack_restore" "optimized"} } */