(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
analyzer/
uninit-7.c
       1  typedef struct st
       2  {
       3    char buf[16];
       4  } st;
       5  
       6  extern st foo (st);
       7  extern st bar (st *);
       8  extern char baz (st);
       9  
      10  void test_1 (st a)
      11  {
      12    st b, c, d, e;
      13  
      14    b = a;
      15    c = foo(a);
      16    d = bar(&a);
      17    c = foo(e); /* { dg-warning "use of uninitialized value 'e'" } */
      18  }
      19  
      20  void test_2 (st a)
      21  {
      22    a = a;
      23  }
      24  
      25  st test_2a (void)
      26  {
      27    st a;
      28    a = a; /* { dg-warning "use of uninitialized value 'a'" } */
      29    return a;
      30  }
      31  
      32  void test_3 (st a)
      33  {
      34    a = foo (a);
      35  }
      36  
      37  st test_3a (void)
      38  {
      39    st a;
      40    a = foo (a); /* { dg-warning "use of uninitialized value 'a'" } */
      41    return a;
      42  }
      43  
      44  void test_3b (st a, st b)
      45  {
      46    a = foo (a);
      47    foo (b);
      48    a = foo (a);
      49    foo (b);
      50    a = foo (a);
      51    foo (b);
      52  }
      53  
      54  void test_4 (st a)
      55  {
      56    a = bar (&a);
      57  }
      58  
      59  st test_4a (void)
      60  {
      61    st a;
      62    a = bar (&a);
      63    return a;
      64  }
      65  
      66  void test_5 (st a)
      67  {
      68    st b;
      69    a = bar (&a);
      70    b = b; /* { dg-warning "use of uninitialized value 'b'" } */
      71  }
      72  
      73  st test_6 (st a)
      74  {
      75    st b;
      76    a = bar (&b);
      77    b = b;
      78    return b;
      79  }
      80  
      81  void test_6a (st a)
      82  {
      83    st b;
      84    a = bar (&b);
      85    b = b;
      86  }
      87  
      88  st test_7 (st a)
      89  {
      90    st b;
      91    b = bar (&a);
      92    return b;
      93  }
      94  
      95  void test_7a (st a)
      96  {
      97    st b;
      98    b = bar (&a);
      99  }
     100  
     101  st test_8 (void)
     102  {
     103    st b;
     104    b = bar (&b);
     105    return b;
     106  }
     107  
     108  void test_8a (void)
     109  {
     110    st b;
     111    b = bar (&b);
     112  }
     113  
     114  char test_9 (st a)
     115  {
     116    char c;
     117    c = baz (a);
     118    return c;
     119  }
     120  
     121  char test_10 (st a)
     122  {
     123    char c;
     124    a = foo (a);
     125    c = baz (a);
     126    return c;
     127  }