[net.unix-wizards] Another Lint Koan?

dzd@cosivax.UUCP (Dean Douthat) (04/20/84)

<>
In  a  C program which needs current date and time, the following
sequence was used:

      #include <stdio.h>
      #include <time.h>
      #include <sys/types.h>
            .
            .
            .
      struct tm *p, *localtime();
      time_t time(), time_sec;
            .
            .
            .
      time_sec = time(NULL);
      p = localtime(@time_sec);

This  was  passed  through  lint  on  a VAX running Eunice.  Lint
nattered about the last line with:

      Inconsistent use of return value.    [Huhh???]

This  lint is, presumbably, based on BSD 4.?  so I tried the same
code on an IBM PC running VENIX/86 which is presumably  based  on
AT&T System III.  There, lint made no complaint whatsoever.

In  examining  lint's grammatical tables or templates or whatever
they're called in file llib-lc, the pertinent line is:

struct     tm *localtime(c) time_t *c; { return localtime(c); }

This  line is *exactly the same* in both the llib-lc for VENIX/86
and that for Eunice.  Is this a  bug  in  the  Eunice  (=  BSD??)
lint,  an  error  in  the  program  [and  therefore  a bug in the
VENIX/86 (= AT&T System III??)   lint]  or  simply  another  lint
koan, beyond the ken of all save UNIX gurus?

May the Source be with you!

Dean Douthat

UUCP:   ...!sb1!mb2c!uofm-cv!cosivax!dzd |  Mail: Zahntron, Inc.
Ma:         (313) 995-9762               |        330 E. Liberty
MCI Mail:   DDOUTHAT 187-3270            |        Suite 3B
TWX/TELEX:  6501873270                   |        Ann Arbor, MI
Answerback: 6501873270 MCI               |                 48104

dzd@cosivax.UUCP (04/26/84)

Thanks  to  Peter Gross for pointing out that I made a typo in my
previous posting concerning a lint  problem;  I  had  "@time_sec"
where  I  meant  "&time_sec".   This  made the problem sound like
merely a complaint on the obscurity of lint's error messages.  It
was correct (&) in the original program.  In fact, my problem  is
not  a  complaint  about  lint  reporting  a syntax error with an
obscure message but rather that  it  complained  at  all  on  one
version (VAX with Eunice) but not on another (VENIX).

As far as I can see, there is no error in the program, especially
in  type-declarations  of  localtime()  and  p.   Thus  I tend to
believe VENIX but not Eunice.  But no matter my personal beliefs,
*one of them* is wrong.  I would be interested to hear what other
"lints" think about this program.  If Eunice "lint" is wrong, its
system administrator would like to know about it.   If  VENIX  is
wrong,   I  would  like  to  know  it.   (The  VAX  is  owned  by
Environmental Research Institute of Michigan  and  the  IBM-PC/XT
with VENIX is my own.)

Dean Douthat

UUCP:   ...!sb1!mb2c!uofm-cv!cosivax!dzd |  Mail: Zahntron, Inc.
Ma:         (313) 995-9762               |        330 E. Liberty
MCI Mail:   DDOUTHAT 187-3270            |        Suite 3B
TWX/TELEX:  6501873270                   |        Ann Arbor, MI
Answerback: 6501873270 MCI               |                 48104