Remove custom handling of array copies in lambda by-value array capture and
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 14 Dec 2016 00:03:17 +0000 (00:03 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 14 Dec 2016 00:03:17 +0000 (00:03 +0000)
commit30e304e2a646ccd5f34d5697cad0be9dcccfaa2d
tree163bb6f813594df2306fc76c0ec4241e296b8fb9
parent54eb192b25aa766142e19203361f2d91f21b7263
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
29 files changed:
clang/include/clang/AST/DeclCXX.h
clang/include/clang/AST/ExprCXX.h
clang/include/clang/AST/RecursiveASTVisitor.h
clang/lib/AST/ASTImporter.cpp
clang/lib/AST/DeclCXX.cpp
clang/lib/AST/ExprCXX.cpp
clang/lib/CodeGen/CGClass.cpp
clang/lib/CodeGen/CGExprAgg.cpp
clang/lib/CodeGen/CGExprCXX.cpp
clang/lib/CodeGen/CGStmt.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaInit.cpp
clang/lib/Sema/SemaLambda.cpp
clang/lib/Serialization/ASTReader.cpp
clang/lib/Serialization/ASTReaderStmt.cpp
clang/lib/Serialization/ASTWriter.cpp
clang/lib/Serialization/ASTWriterStmt.cpp
clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/lib/StaticAnalyzer/Core/RegionStore.cpp
clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
clang/test/CXX/special/class.copy/implicit-move-def.cpp
clang/test/CodeGenCXX/constructor-init.cpp
clang/test/CodeGenCXX/implicit-copy-constructor.cpp
clang/test/CodeGenCXX/lambda-expressions.cpp
clang/test/CodeGenObjCXX/arc-special-member-functions.mm
clang/test/CodeGenObjCXX/implicit-copy-constructor.mm
clang/test/SemaCXX/constant-expression-cxx11.cpp
clang/unittests/Tooling/RecursiveASTVisitorTest.cpp