From: Chris Lattner Date: Sun, 26 Aug 2007 07:16:41 +0000 (+0000) Subject: Omit EmitConversion X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=10b00cfe6422906b223724048b9b2123968d3baa;p=clang Omit EmitConversion git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41438 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CodeGen/CGExpr.cpp b/CodeGen/CGExpr.cpp index 776ec78b51..58b4059aeb 100644 --- a/CodeGen/CGExpr.cpp +++ b/CodeGen/CGExpr.cpp @@ -44,27 +44,6 @@ llvm::Value *CodeGenFunction::EvaluateExprAsBool(const Expr *E) { // Conversions //===--------------------------------------------------------------------===// -/// EmitConversion - Convert the value specied by Val, whose type is ValTy, to -/// the type specified by DstTy, following the rules of C99 6.3. -RValue CodeGenFunction::EmitConversion(RValue Val, QualType ValTy, - QualType DstTy) { - ValTy = ValTy.getCanonicalType(); - DstTy = DstTy.getCanonicalType(); - if (ValTy == DstTy) return Val; - - // Handle conversions to bool first, they are special: comparisons against 0. - if (const BuiltinType *DestBT = dyn_cast(DstTy)) - if (DestBT->getKind() == BuiltinType::Bool) - return RValue::get(ConvertScalarValueToBool(Val, ValTy)); - - if (Val.isScalar() && !hasAggregateLLVMType(DstTy)) - return RValue::get(EmitScalarConversion(Val.getVal(), ValTy, DstTy)); - - - assert(0 && "FIXME: We don't support complex conversions yet!"); -} - - /// ConvertScalarValueToBool - Convert the specified expression value to a /// boolean (i1) truth value. This is equivalent to "Val == 0". llvm::Value *CodeGenFunction::ConvertScalarValueToBool(RValue Val, QualType Ty){ diff --git a/CodeGen/CGExprScalar.cpp b/CodeGen/CGExprScalar.cpp index b1f26d61be..deaf0a89fe 100644 --- a/CodeGen/CGExprScalar.cpp +++ b/CodeGen/CGExprScalar.cpp @@ -378,10 +378,8 @@ Value *ScalarExprEmitter::EmitCastExpr(const Expr *E, QualType DestTy) { // If the destination is void, just evaluate the source. if (DestTy->isVoidType()) return 0; - - // FIXME: Refactor EmitConversion to not return an RValue. Sink it into this - // method. - return CGF.EmitConversion(Src, E->getType(), DestTy).getVal(); + + assert(0 && "Can't convert from an aggregate yet!"); } //===----------------------------------------------------------------------===// diff --git a/CodeGen/CodeGenFunction.h b/CodeGen/CodeGenFunction.h index 71573df679..29b193890b 100644 --- a/CodeGen/CodeGenFunction.h +++ b/CodeGen/CodeGenFunction.h @@ -253,10 +253,6 @@ public: // Conversions //===--------------------------------------------------------------------===// - /// EmitConversion - Convert the value specied by Val, whose type is ValTy, to - /// the type specified by DstTy, following the rules of C99 6.3. - RValue EmitConversion(RValue Val, QualType ValTy, QualType DstTy); - /// ConvertScalarValueToBool - Convert the specified expression value to a /// boolean (i1) truth value. This is equivalent to "Val == 0". llvm::Value *ConvertScalarValueToBool(RValue Val, QualType Ty);