home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / lang / c / 13370 < prev    next >
Encoding:
Text File  |  1992-09-08  |  1.2 KB  |  70 lines

  1. Path: sparky!uunet!ontek!mikey
  2. From: mikey@ontek.com (euphausia superba)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: I disagree with lint(1)
  5. Keywords: lint, classic C
  6. Message-ID: <2134@ontek.com>
  7. Date: 8 Sep 92 21:12:09 GMT
  8. References: <1992Sep7.083401.2587@sci.kun.nl>
  9. Organization: Ontek Corporation -- Laguna Hills, California
  10. Lines: 58
  11.  
  12. In comp.lang.c, hansm@cs.kun.nl (Hans Mulder) writes:
  13. | Hello C gurus,
  14. | I just asked lint(1)'s opinion on this piece of code:
  15. | typedef struct foo *bar;
  16. | fun(b)
  17. | bar b;
  18. | {
  19. |     b=b;
  20. | }
  21. | struct foo
  22. | {
  23. |     int i;
  24. | }   the_struct;
  25. | main()
  26. | {
  27. |     fun(&the_struct);
  28. |     return 0;
  29. | }
  30. | Lint(1) says:
  31. | fun, arg. 1 used inconsistently    foo.c(5)  ::  foo.c(16)
  32. | I disagree.  The first argument to fun is a pointer to struct foo on both
  33. | lines.  In my book, that's the same.
  34. | What do you all think?
  35.  
  36. I think lint is complaining not about the typedef, but because
  37. at the point where fun() is defined, "struct foo", and hence "foo *" 
  38. are incomplete types.  This should shut lint up:
  39.  
  40.   typedef struct foo *bar;
  41.  
  42.   struct foo
  43.   {
  44.       int i;
  45.   }   the_struct;
  46.  
  47.   fun(b)
  48.   bar b;
  49.   {
  50.       b=b;
  51.   }
  52.  
  53.   main()
  54.   {
  55.       fun(&the_struct);
  56.       return 0;
  57.   }
  58.  
  59.       the krill
  60.  
  61.