call.c (build_op_delete_call): Do not forget the placement arguments when iterating...
authorMark Mitchell <mark@codesourcery.com>
Sat, 20 Mar 2004 00:18:24 +0000 (00:18 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Sat, 20 Mar 2004 00:18:24 +0000 (00:18 +0000)
commit4546865e5b18963ce661d5053a6b4b7b15adfe7d
treef2fd9f01f614185daf70c05007cdcde2929152b5
parentb40bc279e75da8718e7cb7cd7d7118a6adcba4cb
call.c (build_op_delete_call): Do not forget the placement arguments when iterating through mutiple delete...

* call.c (build_op_delete_call): Do not forget the placement
arguments when iterating through mutiple delete operators.

* cp-tree.h (svaed_scope): Remove last_parms.
(NEW_DELETE_OPNAME_P): New macro.
(last_function_parms): Remove.
(do_friend): Adjust prototype.
* decl.c (grokparms): Return the PARM_DECLs directly, rather than
using last_function_parms.
(grokfndecl): Take the PARM_DECLs as an argument, rather than
using last_function_parms.
(grokdeclarator): Adjust accordingly.  Do not form METHOD_TYPEs
for class-specific operator new and operator delete.
(grok_op_properties): Do not look for allocation functions with
METHOD_TYPEs.
(start_function): Use DECL_ARGUMENTS instead of
last_function_parms.
* decl.h (last_function_parms): Do not declare.
* decl2.c (grokclassfn): Do not use last_function_parms.
* friend.c (do_friend): Remove parmdecls parameter.
* name-lookup.c (push_to_top_level): Do not save last_function_parms.
(pop_from_top_level): Do not restore it.
* pt.c (check_explicit_specialization): Do not adjust
last_function_parms.

* name-lookup.c (do_local_using_decl): Create a local binding for
types brought in via using declarations.

* name-lookup.c (lookup_arg_dependent): Handle block-scope
function declarations correctly.

* semantics.c (finish_id_expression): Correct handling of
conversion operators to dependent types.

* typeck.c (lookup_destructor): Allow the use of destructors from
base classes.

* g++.dg/init/placement3.C: New test.

* g++.dg/template/spec13.C: New test.

* g++.dg/lookup/using11.C: New test.

* g++.dg/lookup/koenig3.C: New test.

* g++.dg/template/operator2.C: New test.

* g++.dg/expr/dtor3.C: New test.
* g++.old-deja/g++.brendan/crash15.C: Remove incorrect dg-error
marker.
* g++.old-deja/g++.law/visibility28.C: Likewise.

From-SVN: r79722
20 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/decl.h
gcc/cp/decl2.c
gcc/cp/friend.c
gcc/cp/name-lookup.c
gcc/cp/pt.c
gcc/cp/semantics.c
gcc/cp/typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/expr/dtor3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/init/placement3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lookup/koenig3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lookup/using11.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/operator2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/spec13.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.brendan/crash15.C
gcc/testsuite/g++.old-deja/g++.law/visibility28.C