call to revolt

Sean Eric Fagan sef at kithrup.COM
Wed Jun 26 05:08:54 AEST 1991


In article <rabson.677868220 at physics.ubc.ca> rabson at physics.ubc.ca (David Rabson) writes:
>Eliminating the IDENTA/**/IDENTB concatenation
>mechanism from the preprocessor was stupid but not enough to make me
>post to this group.  (I am aware of the argument that supports the action,
>tokenizing compilers, but I am not convinced by it).

How about this, then:  correct C preprocessors replace comments with white
space.  The Reiser cpp was *broken*, and many, many other implementations
existed that did not do that.

>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)++;

I can think of about 30.  Ok, an exaggeration, but I can name at least 5 or
6 that did not do this.

You can cast an lvalue.  However, the result is no longer an lvalue.  What
is a compiler supposed to make of:

	int f;
	(float)f++;

Learn the language.

-- 
Sean Eric Fagan  | "What *does* that 33 do?  I have no idea."
sef at kithrup.COM  |           -- Chris Torek
-----------------+              (torek at ee.lbl.gov)
Any opinions expressed are my own, and generally unpopular with others.



More information about the Comp.std.c mailing list