Go to file
Douglas Gregor fe31481f68 Introduce a new AST node describing reference binding to temporaries.
MaterializeTemporaryExpr captures a reference binding to a temporary
value, making explicit that the temporary value (a prvalue) needs to
be materialized into memory so that its address can be used. The
intended AST invariant here is that a reference will always bind to a
glvalue, and MaterializeTemporaryExpr will be used to convert prvalues
into glvalues for that binding to happen. For example, given

  const int& r = 1.0;

The initializer of "r" will be a MaterializeTemporaryExpr whose
subexpression is an implicit conversion from the double literal "1.0"
to an integer value. 

IR generation benefits most from this new node, since it was
previously guessing (badly) when to materialize temporaries for the
purposes of reference binding. There are likely more refactoring and
cleanups we could perform there, but the introduction of
MaterializeTemporaryExpr fixes PR9565, a case where IR generation
would effectively bind a const reference directly to a bitfield in a
struct. Addresses <rdar://problem/9552231>.

llvm-svn: 133521
2011-06-21 17:03:29 +00:00
clang Introduce a new AST node describing reference binding to temporaries. 2011-06-21 17:03:29 +00:00
compiler-rt <rdar://problem/9624306> clean up darwin platform to use xcrun. Set up variables in darwin_bni.mk. Use GetCNAVar in AppleBI.mk 2011-06-21 00:07:55 +00:00
debuginfo-tests Testcase for r133065 2011-06-15 17:57:23 +00:00
libcxx More fixes: One of my fixes to type_traits earlier today was incorrect, so that is reverted. Recently clang appears to have tightened up its definition of is_convertible and that has caused some failures in [unordered_][multi]map. I've switched to using is_constructible to restablish the desired functionality in [unordered_][multi]map. Specifically, inserting rvalues of move-only types for the keys. 2011-06-19 21:45:00 +00:00
libcxxabi Clean up the vector tests 2011-06-13 17:57:10 +00:00
lldb Replace examine-threads.c with a similar little utility I wrote a 2011-06-21 02:57:15 +00:00
llvm IVUsers no longer needs to record the phis. 2011-06-21 15:43:52 +00:00
polly www: Adding webpage to track memory access transformation 2011-06-18 17:17:16 +00:00