diff options
author | JF Bastien <jfb@google.com> | 2018-05-19 04:21:26 +0000 |
---|---|---|
committer | JF Bastien <jfb@google.com> | 2018-05-19 04:21:26 +0000 |
commit | 6b23972f07a1604bccb9cd8334355e54ebac85a4 (patch) | |
tree | e9c7b3f12d46c42273a004142cc33ffb9aad6c1c /llvm/lib | |
parent | fcd50538c2ec8d2f62edb5a40a94ee354e8e5b42 (diff) | |
download | bcm5719-llvm-6b23972f07a1604bccb9cd8334355e54ebac85a4.tar.gz bcm5719-llvm-6b23972f07a1604bccb9cd8334355e54ebac85a4.zip |
CodeGen: block capture shouldn't ICE
When a lambda capture captures a __block in the same statement, the compiler asserts out because isCapturedBy assumes that an Expr can only be a BlockExpr, StmtExpr, or if it's a Stmt then all the statement's children are expressions. That's wrong, we need to visit all sub-statements even if they're not expressions to see if they also capture.
Fix this issue by pulling out the isCapturedBy logic to use RecursiveASTVisitor.
<rdar://problem/39926584>
llvm-svn: 332801
Diffstat (limited to 'llvm/lib')
0 files changed, 0 insertions, 0 deletions