]> granicus.if.org Git - clang/commit
When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only
authorDouglas Gregor <dgregor@apple.com>
Thu, 27 Jan 2011 23:22:05 +0000 (23:22 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 27 Jan 2011 23:22:05 +0000 (23:22 +0000)
commitb3d5e2f181269656c1b2dbc09eab1f449d5074aa
treebb5c7ce777b9c47957038011643627ac60d0f2a3
parent1e8011e2fcddc4a638d210ec2dcd21adcf7b1763
When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only
non-class prvalues actually require the realization of a
temporary. For everything else, we already have an lvalue (or class
prvalue) in the subexpression.

Note: we're missing some move elision in this case. I'll tackle that next.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124453 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGExpr.cpp
test/CodeGenCXX/rvalue-references.cpp