[cfe-commits] r55223 - in /cfe/trunk/lib/CodeGen: CGExpr.cpp CGExprAgg.cpp CGExprScalar.cpp CGObjC.cpp CGObjCGNU.cpp CGObjCMac.cpp CGObjCRuntime.h CodeGenFunction.h

Daniel Dunbar daniel at zuster.org
Sat Aug 23 17:38:36 PDT 2008


I don't think it positively or negatively impacts supporting lvalues. I just
haven't got to that point yet (actually, I don't even think clang parses code
with such situations yet).

 - Daniel

----- Original Message ----
From: Chris Lattner <clattner at apple.com>
To: Daniel Dunbar <daniel at zuster.org>
Cc: cfe-commits at cs.uiuc.edu
Sent: Saturday, August 23, 2008 4:51:48 PM
Subject: Re: [cfe-commits] r55223 - in /cfe/trunk/lib/CodeGen: CGExpr.cpp CGExprAgg.cpp CGExprScalar.cpp CGObjC.cpp CGObjCGNU.cpp CGObjCMac.cpp CGObjCRuntime.h CodeGenFunction.h


On Aug 22, 2008, at 8:46 PM, Daniel Dunbar wrote:

> Author: ddunbar
> Date: Fri Aug 22 22:46:30 2008
> New Revision: 55223
>
> URL: http://llvm.org/viewvc/llvm-project?rev=55223&view=rev
> Log:
> Trim CGObjCRuntime::GenerateMessageSend[Super]
> - Returns an RValue.

Note that calls return a modifiable lvalue in c++/objc++, so the 
following is legal:

[whatever doit].field = 17;

Does your change impact supporting this in the future?  Here's a C++ 
testcase:

#include <utility>

std::pair<int, float> foo();

void bar() {
  foo().first = 7;
}

-Chris



More information about the cfe-commits mailing list