[cfe-commits] r139020 - in /cfe/trunk: lib/CodeGen/CGExprComplex.cpp test/CodeGen/capture-complex-expr-block.c

Eli Friedman eli.friedman at gmail.com
Fri Sep 2 11:49:24 PDT 2011


On Fri, Sep 2, 2011 at 11:39 AM, Fariborz Jahanian <fjahanian at apple.com> wrote:
> Author: fjahanian
> Date: Fri Sep  2 13:39:40 2011
> New Revision: 139020
>
> URL: http://llvm.org/viewvc/llvm-project?rev=139020&view=rev
> Log:
> blocks: Support capturing complex variable in block.
> // rdar://10033896
>
> Added:
>    cfe/trunk/test/CodeGen/capture-complex-expr-block.c
> Modified:
>    cfe/trunk/lib/CodeGen/CGExprComplex.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGExprComplex.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprComplex.cpp?rev=139020&r1=139019&r2=139020&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExprComplex.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExprComplex.cpp Fri Sep  2 13:39:40 2011
> @@ -311,11 +311,7 @@
>  //===----------------------------------------------------------------------===//
>
>  ComplexPairTy ComplexExprEmitter::VisitExpr(Expr *E) {
> -  CGF.ErrorUnsupported(E, "complex expression");
> -  llvm::Type *EltTy =
> -    CGF.ConvertType(E->getType()->getAs<ComplexType>()->getElementType());
> -  llvm::Value *U = llvm::UndefValue::get(EltTy);
> -  return ComplexPairTy(U, U);
> +  return EmitLoadOfLValue(E);
>  }

No.  Calling EmitLoadOfLValue on random expressions is a bad idea.
Add a separate function for whatever expression is relevant.

-Eli




More information about the cfe-commits mailing list