diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6e8a8b9e5b9..aa4659f7654 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2007-09-16 Paolo Carlini + + PR c++/33124 + * init.c (build_new): Remove warning for zero-element + allocations. + 2007-09-16 Nathan Sidwell cp/ diff --git a/gcc/cp/init.c b/gcc/cp/init.c index cafc7217107..e11d18433b3 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2173,21 +2173,6 @@ build_new (tree placement, tree type, tree nelts, tree init, if (!build_expr_type_conversion (WANT_INT | WANT_ENUM, nelts, false)) pedwarn ("size in array new must have integral type"); nelts = cp_save_expr (cp_convert (sizetype, nelts)); - /* It is valid to allocate a zero-element array: - - [expr.new] - - When the value of the expression in a direct-new-declarator - is zero, the allocation function is called to allocate an - array with no elements. The pointer returned by the - new-expression is non-null. [Note: If the library allocation - function is called, the pointer returned is distinct from the - pointer to any other object.] - - However, that is not generally useful, so we issue a - warning. */ - if (integer_zerop (nelts)) - warning (0, "allocating zero-element array"); } /* ``A reference cannot be created by the new operator. A reference diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1fea6a1daaf..1c5209a66a5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-09-16 Paolo Carlini + + PR c++/33124 + * g++.dg/warn/new1.C: Adjust. + * g++.dg/torture/str_empty.C: Likewise. + 2007-09-16 Richard Sandiford * gcc.target/mips/dse-1.c: New test. diff --git a/gcc/testsuite/g++.dg/torture/str_empty.C b/gcc/testsuite/g++.dg/torture/str_empty.C index 0a6aabf7c33..e24f0b6ac9f 100644 --- a/gcc/testsuite/g++.dg/torture/str_empty.C +++ b/gcc/testsuite/g++.dg/torture/str_empty.C @@ -9,7 +9,7 @@ struct polynomial { void spline_rep1 () { - new polynomial[0]; // { dg-warning "allocating zero-element array" } + new polynomial[0]; // { dg-bogus "allocating zero-element array" } } diff --git a/gcc/testsuite/g++.dg/warn/new1.C b/gcc/testsuite/g++.dg/warn/new1.C index 6b78368aaec..b50b2c354e7 100644 --- a/gcc/testsuite/g++.dg/warn/new1.C +++ b/gcc/testsuite/g++.dg/warn/new1.C @@ -1,3 +1,3 @@ void f() { - new int[0]; // { dg-warning "zero" } + new int[0]; // { dg-bogus "zero" } }