diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-12-14 00:03:17 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-12-14 00:03:17 +0000 |
commit | 30e304e2a646ccd5f34d5697cad0be9dcccfaa2d (patch) | |
tree | 163bb6f813594df2306fc76c0ec4241e296b8fb9 /clang/lib/Serialization/ASTWriterStmt.cpp | |
parent | 54eb192b25aa766142e19203361f2d91f21b7263 (diff) | |
download | bcm5719-llvm-30e304e2a646ccd5f34d5697cad0be9dcccfaa2d.tar.gz bcm5719-llvm-30e304e2a646ccd5f34d5697cad0be9dcccfaa2d.zip |
Remove custom handling of array copies in lambda by-value array capture and
copy constructors of classes with array members, instead using
ArrayInitLoopExpr to represent the initialization loop.
This exposed a bug in the static analyzer where it was unable to differentiate
between zero-initialized and unknown array values, which has also been fixed
here.
llvm-svn: 289618
Diffstat (limited to 'clang/lib/Serialization/ASTWriterStmt.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTWriterStmt.cpp | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index fbe1d843cd6..f66cc029f52 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -1257,10 +1257,6 @@ void ASTStmtWriter::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *E) { void ASTStmtWriter::VisitLambdaExpr(LambdaExpr *E) { VisitExpr(E); Record.push_back(E->NumCaptures); - unsigned NumArrayIndexVars = 0; - if (E->HasArrayIndexVars) - NumArrayIndexVars = E->getArrayIndexStarts()[E->NumCaptures]; - Record.push_back(NumArrayIndexVars); Record.AddSourceRange(E->IntroducerRange); Record.push_back(E->CaptureDefault); // FIXME: stable encoding Record.AddSourceLocation(E->CaptureDefaultLoc); @@ -1275,15 +1271,6 @@ void ASTStmtWriter::VisitLambdaExpr(LambdaExpr *E) { Record.AddStmt(*C); } - // Add array index variables, if any. - if (NumArrayIndexVars) { - Record.append(E->getArrayIndexStarts(), - E->getArrayIndexStarts() + E->NumCaptures + 1); - VarDecl **ArrayIndexVars = E->getArrayIndexVars(); - for (unsigned I = 0; I != NumArrayIndexVars; ++I) - Record.AddDeclRef(ArrayIndexVars[I]); - } - Code = serialization::EXPR_LAMBDA; } |