re PR c++/33124 (C++ frontend should not warn about new a[0] in template context)

/cp
2007-09-16  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33124
	* init.c (build_new): Remove warning for zero-element
	allocations.

/testsuite
2007-09-16  Paolo Carlini  <pcarlini@suse.de>

	PR c++/33124
	* g++.dg/warn/new1.C: Adjust.
	* g++.dg/torture/str_empty.C: Likewise.

From-SVN: r128531
This commit is contained in:
Paolo Carlini 2007-09-16 22:54:12 +00:00 committed by Paolo Carlini
parent 348eea5f00
commit 57711cd1b3
5 changed files with 14 additions and 17 deletions

View File

@ -1,3 +1,9 @@
2007-09-16 Paolo Carlini <pcarlini@suse.de>
PR c++/33124
* init.c (build_new): Remove warning for zero-element
allocations.
2007-09-16 Nathan Sidwell <nathan@codesourcery.com>
cp/

View File

@ -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

View File

@ -1,3 +1,9 @@
2007-09-16 Paolo Carlini <pcarlini@suse.de>
PR c++/33124
* g++.dg/warn/new1.C: Adjust.
* g++.dg/torture/str_empty.C: Likewise.
2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk>
* gcc.target/mips/dse-1.c: New test.

View File

@ -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" }
}

View File

@ -1,3 +1,3 @@
void f() {
new int[0]; // { dg-warning "zero" }
new int[0]; // { dg-bogus "zero" }
}