aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/uninit-pr89230-1.c
blob: bf536e2e65a7076d4b9dc2210baa13f0fc3ca13e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* PR middle-end/89230 - Bogus uninited usage warning with printf
   { dg-do compile }
   { dg-options "-O2 -Wall" } */

struct S { int i, j; };

/* attribute__ ((malloc)) */ struct S* f (void);

int g (void)
{
  struct S *p = f ();
  struct S *q; // { dg-bogus "" "uninitialized" { xfail *-*-* } }

  if (p->i || !(q = f ()) || p->j != q->i)
   {
     __builtin_printf ("%i", p->i);

     if (p->i)
       return 1;

     if (!q)        // { dg-bogus "\\\[-Wmaybe-uninitialized" "" { xfail *-*-* } }
       return 2;
   }

  return 0;
}