forked from OSchip/llvm-project
7c38f153ac
subobject. Previously, we could only properly bind to a base class subobject while extending the lifetime of the complete object (of a derived type); for non-static data member subobjects, we could memcpy (!) the result and bind to that, which is rather broken. Now, we pull apart the expression that we're binding to, to figure out which subobject we're accessing, then construct the temporary object (adding a destruction if needed) and, finally, dig out the subobject we actually meant to access. This fixes yet another instance where we were memcpy'ing rather than doing the right thing. However, note the FIXME in references.cpp: there's more work to be done for binding to subobjects, since the AST is incorrectly modeling some member accesses in base classes as lvalues when they are really rvalues. llvm-svn: 104219 |
||
---|---|---|
.. | ||
AST | ||
Analysis | ||
Basic | ||
Checker | ||
CodeGen | ||
Driver | ||
Frontend | ||
Headers | ||
Index | ||
Lex | ||
Parse | ||
Rewrite | ||
Runtime | ||
Sema | ||
CMakeLists.txt | ||
Makefile |