diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-02-22 05:02:47 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-02-22 05:02:47 +0000 |
commit | ed90df38004678cf1ebf1caa3fbac8a0047be73e (patch) | |
tree | 49750c16f2a1c4babf5601c2fe1be8f433583542 /clang/lib/CodeGen/CGExprComplex.cpp | |
parent | 7cd4a9ba48c08d3804316815c0b5250d4b0bbbe7 (diff) | |
download | bcm5719-llvm-ed90df38004678cf1ebf1caa3fbac8a0047be73e.tar.gz bcm5719-llvm-ed90df38004678cf1ebf1caa3fbac8a0047be73e.zip |
Generate an AST for the conversion from a lambda closure type to a
block pointer that returns a block literal which captures (by copy)
the lambda closure itself. Some aspects of the block literal are left
unspecified, namely the capture variable (which doesn't actually
exist) and the body (which will be filled in by IRgen because it can't
be written as an AST).
Because we're switching to this model, this patch also eliminates
tracking the copy-initialization expression for the block capture of
the conversion function, since that information is now embedded in the
synthesized block literal. -1 side tables FTW.
llvm-svn: 151131
Diffstat (limited to 'clang/lib/CodeGen/CGExprComplex.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGExprComplex.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExprComplex.cpp b/clang/lib/CodeGen/CGExprComplex.cpp index 15fa225eb85..ae192cb8365 100644 --- a/clang/lib/CodeGen/CGExprComplex.cpp +++ b/clang/lib/CodeGen/CGExprComplex.cpp @@ -413,6 +413,7 @@ ComplexPairTy ComplexExprEmitter::EmitCast(CastExpr::CastKind CK, Expr *Op, case CK_ARCConsumeObject: case CK_ARCReclaimReturnedObject: case CK_ARCExtendBlockObject: + case CK_CopyAndAutoreleaseBlockObject: llvm_unreachable("invalid cast kind for complex value"); case CK_FloatingRealToComplex: |