Related articles |
---|
[7 earlier articles] |
Re: Writing a C Compiler: lvalues marc@lithia.nl (Marc van Lieshout) (2010-05-16) |
Re: Writing a C Compiler: lvalues esosman@ieee.org (Eric Sosman) (2010-05-17) |
Re: Writing a C Compiler: lvalues kst-u@mib.org (Keith Thompson) (2010-05-17) |
Re: Writing a C Compiler: lvalues kst-u@mib.org (Keith Thompson) (2010-05-19) |
Re: Writing a C Compiler: lvalues bartc@freeuk.com (bart.c) (2010-05-19) |
Re: Writing a C Compiler: lvalues lawrence.jones@siemens.com (2010-05-19) |
Re: Writing a C Compiler: lvalues kst-u@mib.org (Keith Thompson) (2010-05-19) |
Re: Writing a C Compiler: lvalues DrDiettrich1@aol.com (Hans-Peter Diettrich) (2010-05-20) |
Re: Writing a C Compiler: lvalues s_dubrovich@yahoo.com (2010-05-22) |
Re: Writing a C Compiler: lvalues lawrence.jones@siemens.com (2010-05-24) |
From: | Keith Thompson <kst-u@mib.org> |
Newsgroups: | comp.lang.c,comp.compilers |
Date: | Wed, 19 May 2010 19:55:58 -0700 |
Organization: | None to speak of |
References: | 10-05-036 10-05-095 10-05-103 10-05-113 |
Keywords: | C |
Posted-Date: | 19 May 2010 23:42:56 EDT |
lawrence.jones@siemens.com writes:
> Keith Thompson <kst-u@mib.org> wrote:
>>
>> So in (x + 5), x *isn't* an lvalue, even though it started out as one.
>
> I disagree -- x *is* an lvalue, but it's converted to the value stored in
> the object when the containing expression is evaluated.
A subtle distinction at best. As I wrote upthread, the standard says:
C99 6.3.2.1p2:
Except when it is the operand of [list of operators deleted],
an lvalue that does not have array type is converted to the value
stored in the designated object (and is no longer an lvalue).
So in the above context, ``x'' *was* an lvalue, but "is no longer"
an lvalue.
The wording is a bit odd. When exactly does it stop being an lvalue?
Surely conversions happen during execution, conceptually at least,
(right?) but by that time lvalue-ness is no longer meaningful.
(Note to comp.compilers readers: this is *very* C-specific.)
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Return to the
comp.compilers page.
Search the
comp.compilers archives again.