diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-07-21 01:10:17 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-07-21 01:10:17 +0000 |
commit | 05fc5be32f8de7e947971f1dee94fb491fd534dd (patch) | |
tree | 09ffba514a52fe3cbc04880dc9505f862a9ac6c0 /clang/lib/CodeGen/CodeGenFunction.h | |
parent | a0e7f0c1b1155b630b7753cd7a78cbfe88c78b01 (diff) | |
download | bcm5719-llvm-05fc5be32f8de7e947971f1dee94fb491fd534dd.tar.gz bcm5719-llvm-05fc5be32f8de7e947971f1dee94fb491fd534dd.zip |
Implement zero-initialization for array new when there is an
initializer of (). Make sure to use a simple memset() when we can, or
fall back to generating a loop when a simple memset will not
suffice. Fixes <rdar://problem/8212208>, a regression due to my work
in r107857.
llvm-svn: 108977
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index d335e2b4f82..3e31803753c 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -1053,13 +1053,15 @@ public: const ConstantArrayType *ArrayTy, llvm::Value *ArrayPtr, CallExpr::const_arg_iterator ArgBeg, - CallExpr::const_arg_iterator ArgEnd); + CallExpr::const_arg_iterator ArgEnd, + bool ZeroInitialization = false); void EmitCXXAggrConstructorCall(const CXXConstructorDecl *D, llvm::Value *NumElements, llvm::Value *ArrayPtr, CallExpr::const_arg_iterator ArgBeg, - CallExpr::const_arg_iterator ArgEnd); + CallExpr::const_arg_iterator ArgEnd, + bool ZeroInitialization = false); void EmitCXXAggrDestructorCall(const CXXDestructorDecl *D, const ArrayType *Array, |