1  /* PR middle-end/65182 - -Wuninitialized fails when pointer to variable
       2     later passed to function
       3     { dg-do compile }
       4     { dg-options "-O0 -Wall" } */
       5  
       6  void bar (int *a);
       7  
       8  int baz (void);
       9  
      10  __attribute__ ((noipa)) void foo_O0 (int *b)
      11  {
      12    int a;
      13  
      14    if (a)            // { dg-warning "\\\[-Wuninitialized" }
      15      {
      16        *b = 0;
      17        return;
      18      }
      19  
      20    bar (&a);
      21  
      22    a = baz ();
      23  
      24    *b = a + 2;
      25  }
      26  
      27  #pragma GCC optimize ("2")
      28  
      29  __attribute__ ((noipa)) void foo_O2 (int *b)
      30  {
      31    int a;
      32  
      33    if (a)            // { dg-warning "\\\[-Wuninitialized" }
      34      {
      35        *b = 0;
      36        return;
      37      }
      38  
      39    bar (&a);
      40  
      41    a = baz ();
      42  
      43    *b = a + 3;
      44  }