(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr101170.c
       1  /* PR middle-end/101170 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -g" } */
       4  
       5  #include <stdarg.h>
       6  
       7  struct S { int a; int b[4]; } s;
       8  va_list ap;
       9  int i;
      10  long long l;
      11  
      12  struct S
      13  foo (int x)
      14  {
      15    struct S a = {};
      16    do
      17      if (x)
      18        return a;
      19    while (1);
      20  }
      21  
      22  __attribute__((noipa)) void
      23  bar (void)
      24  {
      25    for (; i; i++)
      26      l |= va_arg (ap, long long) << s.b[i];
      27    if (l)
      28      foo (l);
      29  }
      30  
      31  void
      32  baz (int v, ...)
      33  {
      34    va_start (ap, v);
      35    bar ();
      36    va_end (ap);
      37  }