Newsgroups: comp.std.c
Path: utzoo!henry
From: henry@zoo.toronto.edu (Henry Spencer)
Subject: Re: call to revolt
Message-ID: <1991Jun25.181916.26586@zoo.toronto.edu>
Date: Tue, 25 Jun 1991 18:19:16 GMT
References: <rabson.677868220@physics.ubc.ca>
Organization: U of Toronto Zoology

In article <rabson.677868220@physics.ubc.ca> rabson@physics.ubc.ca (David Rabson) writes:
>Outlawing lvalue casts, however, borders on fascism.  I have yet to see
>a pre-ansi compiler that fails to treat properly
>
>		void *thing;
>		((int *)thing)++;

What do you mean by "treat properly"?  What does this construct *mean*?
Remember that `void *' and `int *' need not even be the same size, much
less have the same representation.  A cast is a conversion operation,
not a "view these bits differently" operation.  (See K&R1 page 42.)

>The rest of us should stop sitting back and start fighting.  If enough
>customers insist on casting lvalues and otherwising ignoring ansi's
>meddling in Kernighan's and Ritchie's work, vendors will create
>correct, rather than compliant, compilers.

Please cite K&R chapter and verse for thinking that casts are lvalues.

You might also want to note that Dennis Ritchie has stated openly:
"I think X3J11 did an excellent job, though there are legitimate criticisms".
(Article <10039@alice.uucp>, 21 Oct 1989.)
-- 
"We're thinking about upgrading from    | Henry Spencer @ U of Toronto Zoology
SunOS 4.1.1 to SunOS 3.5."              |  henry@zoo.toronto.edu  utzoo!henry
