diff options
| author | Anders Carlsson <andersca@mac.com> | 2010-02-03 16:38:03 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2010-02-03 16:38:03 +0000 |
| commit | a64a869312066ff6119d1d7ae03f88ce499e3f82 (patch) | |
| tree | 5ff2531884f675da36cc3d8f41779a9d36cee6ba /lib/CodeGen/CGExpr.cpp | |
| parent | ef6e0f3218b64d8ea3b8b57ee657fec8da228a43 (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.cpp | 25 |
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: |
