aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGExpr.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-02-03 16:38:03 +0000
committerAnders Carlsson <andersca@mac.com>2010-02-03 16:38:03 +0000
commita64a869312066ff6119d1d7ae03f88ce499e3f82 (patch)
tree5ff2531884f675da36cc3d8f41779a9d36cee6ba /lib/CodeGen/CGExpr.cpp
parentef6e0f3218b64d8ea3b8b57ee657fec8da228a43 (diff)
Revert the new reference binding code; I came up with a way simpler solution for the reference binding bug that is preventing self-hosting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95223 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExpr.cpp')
-rw-r--r--lib/CodeGen/CGExpr.cpp25
1 files changed, 0 insertions, 25 deletions
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index ab4f8f1935..2ceefae0a0 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -92,31 +92,8 @@ RValue CodeGenFunction::EmitAnyExprToTemp(const Expr *E,
IsInitializer);
}
-llvm::Value *
-CodeGenFunction::EmitCXXBindReferenceExpr(const CXXBindReferenceExpr *E) {
- QualType T = E->getType();
- assert(T->isAnyComplexType() && "FIXME: Unhandled bind expression!");
-
- const Expr *SubExpr = E->getSubExpr();
-
- if (!E->requiresTemporaryCopy())
- return EmitLValue(SubExpr).getAddress();
-
- llvm::Value *Value = CreateTempAlloca(ConvertTypeForMem(T), "reftmp");
-
- if (T->isAnyComplexType())
- EmitComplexExprIntoAddr(SubExpr, Value, /*DestIsVolatile=*/false);
- else
- assert(false && "Unhandled bind expression");
-
- return Value;
-}
-
RValue CodeGenFunction::EmitReferenceBindingToExpr(const Expr* E,
- QualType DestType,
bool IsInitializer) {
- assert(!E->getType()->isAnyComplexType() &&
- "Should not use this function for complex types!");
bool ShouldDestroyTemporaries = false;
unsigned OldNumLiveTemporaries = 0;
@@ -478,8 +455,6 @@ LValue CodeGenFunction::EmitLValue(const Expr *E) {
return EmitCXXConstructLValue(cast<CXXConstructExpr>(E));
case Expr::CXXBindTemporaryExprClass:
return EmitCXXBindTemporaryLValue(cast<CXXBindTemporaryExpr>(E));
- case Expr::CXXBindReferenceExprClass:
- return EmitLValue(cast<CXXBindReferenceExpr>(E)->getSubExpr());
case Expr::CXXExprWithTemporariesClass:
return EmitCXXExprWithTemporariesLValue(cast<CXXExprWithTemporaries>(E));
case Expr::CXXZeroInitValueExprClass: