W3C home > Mailing lists > Public > www-lib@w3.org > January to March 2002

RE: w3c-libwww-5.2.8-7 bug report

From: Desrochers, Gary <Gary.Desrochers@fmr.com>
Date: Tue, 29 Jan 2002 08:29:26 -0500
Message-ID: <1E053503E50CD5118EB500A0C9DB229EE1B71F@MSGMMK578NTS.fmr.com>
To: "'Jean-Christophe Touvet'" <jct@EdelWeb.fr>, Manuele Kirsch Pinheiro <Manuele.Kirsch_Pinheiro@inrialpes.fr>
Cc: Rob Corell <rcorell@adobe.com>, David Binderman <d.binderman@virgin.net>, www-lib@w3.org
Hmmm... Don't want to get into a long drawn out discussion on this but
I don't get why you "concluded" that "i = ++i;" is undefined in K&R "C".
I have the Kernighan an Ritchie book sitting in front of me and it does
describe what would happen with the expression "x = ++i;" and "x = i++;".
In the lexical language reference of K&R "C" in the same book it does
not care what is on the left of the "=" operator during the right hand
evaluation.  It should not care either since it is always performed
after the expression on the right is evaluated. The expression "x = ++x;"
is the same as "x = x + 1;" or "x++;" or "++x;" or "x = x = x + 1;".  The
difference is an expression which is considered an lvalue and one that is
not.

Gary

-----Original Message-----
From: Jean-Christophe Touvet [mailto:jct@EdelWeb.fr]
Sent: Tuesday, January 29, 2002 5:48 AM
To: Manuele Kirsch Pinheiro
Cc: Rob Corell; David Binderman; www-lib@w3.org
Subject: Re: w3c-libwww-5.2.8-7 bug report 



> I don't know if this statement is realy undefined in ANSI C, but it
> works as expected when using an ANSI C compiler (I did a little test to
> confirm it and it works ok in GNU C and Sun Workshop C compilers) .
> Indeed, using GNU C compiler over Red Hat 7.1, I didn't have any of the
> warning messages that David has using Compaq C compiler over the same
> plataform...
> So, I think we may safely ignore those warnings... :)

 Not a very scientific approach: "it works with 2 compilers, thus it
must be correct" ;-)

 However, mea culpa: I remembered the K&R example "a[i] = i++;" and
concluded that "i = ++i;" whould be undefined. Maybe it is under a
strict language interpretation (which would explain Compaq compiler
warning), but I admit that, while inelegant, I don't see how it could
give another result than expected.

 Sorry,

    -JCT-
Received on Tuesday, 29 January 2002 08:30:16 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:40 GMT