summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-05-31 19:49:47 +0000
committerAnders Carlsson <andersca@mac.com>2009-05-31 19:49:47 +0000
commit24187120396136f3d61b14433b75e3c5fe44a316 (patch)
treeab58f95c054b0b7fad1c929bdcf86fdff06278a6
parent6e127a6d86429e6de573ee10975f4b765095c841 (diff)
downloadbcm5719-llvm-24187120396136f3d61b14433b75e3c5fe44a316.tar.gz
bcm5719-llvm-24187120396136f3d61b14433b75e3c5fe44a316.zip
Fix an off by one error when trying to perform copy initialization of operator new and operator delete arguments. Sebastian, please review.
llvm-svn: 72670
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp2
-rw-r--r--clang/test/SemaCXX/new-delete.cpp3
2 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 73cc0513f04..a44dcf6f8bf 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -550,7 +550,7 @@ bool Sema::FindAllocationOverload(SourceLocation StartLoc, SourceRange Range,
// asserted on, though, since invalid decls are left in there.)
for (unsigned i = 1; i < NumArgs; ++i) {
// FIXME: Passing word to diagnostic.
- if (PerformCopyInitialization(Args[i-1],
+ if (PerformCopyInitialization(Args[i],
FnDecl->getParamDecl(i)->getType(),
"passing"))
return true;
diff --git a/clang/test/SemaCXX/new-delete.cpp b/clang/test/SemaCXX/new-delete.cpp
index 2f763e0f78a..f890bf56e36 100644
--- a/clang/test/SemaCXX/new-delete.cpp
+++ b/clang/test/SemaCXX/new-delete.cpp
@@ -21,6 +21,7 @@ struct V : U
void* operator new(size_t); // expected-note 2 {{candidate}}
void* operator new(size_t, int*); // expected-note 3 {{candidate}}
void* operator new(size_t, float*); // expected-note 3 {{candidate}}
+void* operator new(size_t, S); // expected-note 2 {{candidate}}
void good_news()
{
@@ -39,6 +40,8 @@ void good_news()
U *pu = new (ps) U;
// FIXME: Inherited functions are not looked up currently.
//V *pv = new (ps) V;
+
+ pi = new (S(1.0f, 2)) int;
}
struct abstract {
OpenPOWER on IntegriCloud