When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only
commit97799fa4e4ae4b8ead383c66e0cc353be5c716c8
authorDouglas Gregor <doug.gregor@gmail.com>
Thu, 27 Jan 2011 23:22:05 +0000 (27 23:22 +0000)
committerDouglas Gregor <doug.gregor@gmail.com>
Thu, 27 Jan 2011 23:22:05 +0000 (27 23:22 +0000)
treebb5c7ce777b9c47957038011643627ac60d0f2a3
parent8edcd3e837b747c8d38945718388be310b420398
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