home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lclint.zip / lclint-2_3h-os2-bin.zip / test / outparam.c < prev    next >
Text File  |  1997-09-03  |  1KB  |  53 lines

  1. typedef struct _st { int a; int b; } *st;
  2.  
  3. void h(st s, st t)
  4. {
  5.   int i;
  6.   st u1, u2;
  7.  
  8.   u1->a = 3; /* 1. Variable u1 used before definition */
  9.   u2 = u1;
  10.   i = u2->a; 
  11.  
  12.   i = (*s).a; /* 2. Field s->a used before definition */
  13.   t->a = i;  
  14. }
  15.  
  16. void f(/*@out@*/ int *a, int *b)
  17. {
  18.   int x;
  19.   int *y;
  20.  
  21.   x = *a;  /* 3. Value *a used before definition */
  22.   x = *a;  /* not reported */
  23.   x = *a;  /* not reported */
  24.   x = *b; 
  25.  
  26.   y = a;  
  27.   *a = 3; 
  28. }
  29.  
  30. int g()
  31. {
  32.   int *b;
  33.   int *c, *d;
  34.   st s, t, t2, t3, t4;
  35.   struct _st u;
  36.  
  37.   f(c, b);      /* 4, 5. Unallocated storage c passed as out parameter: c,
  38.                      Variable b used before definition */
  39.   f(d, c);      /* 6. Unallocated storage d passed as out parameter: d */
  40.   *c = *d; 
  41.   s = t;        /* 7. Variable t used before definition */
  42.   s = t2->a;    /* 8, 9. Variable t2 used before definition, 
  43.                  Assignment of int to st: s = t2->a */
  44.   t3->a = 3;   /* 10. Variable t3 used before definition */
  45.   u.a = 3;   
  46.   t4 = (st)malloc(sizeof(struct _st));
  47.   t4->a = 3;   /* 11. Possible arrow access from null pointer: t4 */
  48.   return *b;   /* 10. Fresh storage not released before return: t4 */
  49. }
  50.  
  51.  
  52.  
  53.