From a64a869312066ff6119d1d7ae03f88ce499e3f82 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Wed, 3 Feb 2010 16:38:03 +0000 Subject: 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 --- lib/CodeGen/CGExpr.cpp | 25 ------------------------- 1 file changed, 25 deletions(-) (limited to 'lib/CodeGen/CGExpr.cpp') 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(E)); case Expr::CXXBindTemporaryExprClass: return EmitCXXBindTemporaryLValue(cast(E)); - case Expr::CXXBindReferenceExprClass: - return EmitLValue(cast(E)->getSubExpr()); case Expr::CXXExprWithTemporariesClass: return EmitCXXExprWithTemporariesLValue(cast(E)); case Expr::CXXZeroInitValueExprClass: -- cgit v1.2.3-70-g09d2