re PR c++/32245 (wrong POD type initialization with pointer to member)
authorMark Mitchell <mark@codesourcery.com>
Fri, 6 Jul 2007 01:23:54 +0000 (01:23 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 6 Jul 2007 01:23:54 +0000 (01:23 +0000)
commit32a11c08863764dfd6a3be749c0729fee6cd298c
tree17dc867104325855fe255d6858ff0978e0b8936c
parent22761ec3b9b4688e515019b6b97025fda5be6a44
re PR c++/32245 (wrong POD type initialization with pointer to member)

PR c++/32245
* init.c (build_zero_init): Always build an initializer for
non-static storage.
* typeck2.c (build_functional_cast): Use build_zero_init.

PR c++/32251
* init.c (build_new_1): Always pass the allocation function to
build_op_delete_call.
* call.c (build_op_delete_call): Handle operator delete with a
variable-argument list.  Do not issue an error when no matching
deallocation function is available for a new operator.

PR c++/31992
* cp-tree.h (any_value_dependent_elements_p): Declare it.
* decl.c (value_dependent_init_p): New function.
(cp_finish_decl): Use it.
* pt.c (value_dependent_expression_p): Use
any_value_dependent_elements_p.
* parser.c (cp_parser_primary_expression): Add comment about
treating dependent qualified names as integral
constant-expressions.

PR c++/32245
* g++.dg/init/ptrmem4.C: New test.

PR c++/32251
* g++.dg/init/new21.C: Likewise.

PR c++/31992
* g++.dg/template/static30.C: Likewise.

From-SVN: r126399
12 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/init.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/typeck2.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/init/new21.C [new file with mode: 0644]
gcc/testsuite/g++.dg/init/ptrmem4.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/static30.C [new file with mode: 0644]