Don Cragun writes:
>      void
>      timeradd(struct timeval *a, struct timeval *b, struct timeval *res);
[...]
>      int
>      timercmp(struct timeval *a, struct timeval *b, CMP);
> 
>      int
>      timerisset(struct timeval *tvp);
> 
>      void
>      timersub(struct timeval *a, struct timeval *b, struct timeval *res);

It'd be nice to be able to make 'a', 'b', and 'tvp' const.

(Man, that "CMP" thing sure is evil ...)

>      These macros are not available in function form.  All of these macros
>      evaulate their arguments more than once.  If parameters passed to these
>      macros are expressions with side effects, the results are undefined.

Except for timercmp, where the issue is obvious, it's unclear to me
why the others must be defined as function-like macros, especially as
ones with hidden side-effect warts.

>      lint will complain about a constant conditional for timeradd() and
>      timersub().  Use of the /* LINTED */ comment before timeradd() or
>      timersub() is recommended.

Ick.  Is there no way to fix that rather than just documenting it away?

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to