class.c (pushclass): Tweak handling of class-level bindings.
authorMark Mitchell <mark@markmitchell.com>
Mon, 14 Dec 1998 15:35:40 +0000 (15:35 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Mon, 14 Dec 1998 15:35:40 +0000 (15:35 +0000)
commitd8f8dca15f590c4f7514d43c4b2a6c61270ea7fa
treed7dd59c9ebbb858ab3253584bc6ce63646ceb126
parent11b8962251b584202478b1d3d0d2413f6d335dd4
class.c (pushclass): Tweak handling of class-level bindings.

* class.c (pushclass): Tweak handling of class-level bindings.
(resolve_address_of_overloaded_function): Update pointer-to-member
handling.
(instantiate_type): Likewise.
* cvt.c (cp_convert_to_pointer): Likewise.
* decl.c (pop_binding): Take the DECL to pop, not just the name.
Deal with `struct stat' hack.
(binding_level): Add to documentation.
(push_binding): Clear BINDING_TYPE.
(add_binding): New function.
(push_local_binding): Use it.
(push_class_binding): Likewise.
(poplevel): Adjust calls to pop_binding.
(poplevel_class): Likewise.
(pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden
declarations to current binding level.
(push_class_level_binding): Likewise.
(push_overloaded_decl): Adjust handling of OVERLOADs in local
bindings.
(lookup_namespace_name): Don't crash when confronted with a
TEMPLATE_DECL.
(lookup_name_real): Do `struct stat' hack in local binding
contexts.
(build_ptrmemfunc_type): Adjust documentation.
(grokdeclarator): Don't avoid building real array types when
processing templates unless really necessary.
(finish_method): Adjust calls to pop_binding.
* decl2.c (reparse_absdcl_as_expr): Recursively call ourselves,
not reparse_decl_as_expr.
(build_expr_from_tree): Deal with a template-id as the function to
call in a METHOD_CALL_EXPR.
* pt.c (convert_nontype_argument): Tweak pointer-to-member handling.
(maybe_adjust_types_For_deduction): Don't do peculiar things with
METHOD_TYPEs here.
(resolve_overloaded_unification): Handle COMPONENT_REFs.  Build
pointer-to-member types where necessary.
* tree.c (build_cplus_array_type_1): Don't avoid building real
array types when processing templates unless really necessary.
(build_exception_variant): Compare the exception lists correctly.

From-SVN: r24314
15 files changed:
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cvt.c
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/pt.c
gcc/cp/tree.c
gcc/testsuite/g++.old-deja/g++.eh/tmpl3.C
gcc/testsuite/g++.old-deja/g++.ns/crash3.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/expr1.C
gcc/testsuite/g++.old-deja/g++.other/lookup8.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/array2.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/overload11.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/ptrmem4.C [new file with mode: 0644]