OSDN Git Service

* cplus-dem.c (optable): Add sizeof.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Mar 1998 10:25:44 +0000 (10:25 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Mar 1998 10:25:44 +0000 (10:25 +0000)
commitc906a2a7b44186f8a73f7791b432f370b29c928c
tree28c2266d2091a5affc7ff055388b2d8a8fd6ff0c
parent5ce881987ccfcfadb40f75b9cadc07925aaea2f7
* cplus-dem.c (optable): Add sizeof.
(demangle_template_value_parm): New function containing code
previously found in demangle_template.
(demangle_integral_value): New function which handles complicated
integral expressions.
(demangle_template): Use them.
* error.c (dump_expr): Remove unused variable `l'.
* pt.c (for_each_template_parm): New function, created by
converting uses_template_parms.
(tree_fn_t): New typedef.
(uses_template_parms): Use it.
(mark_template_parm): New function.
(push_template_decl): Check that the argument list of a partial
specialization uses all the template parameters.
* Make-lang.in (c++filt): Don't delete cxxmain.c after we're done
with it; we might want it for debugging.
* cp-tree.h (type_unification): Change interface.
* class.c (finish_struct_1): Skip nested template types, just like
ordinary nested types.
(instantiate_type): Use new interface to type_unification.
* lex.c (init_lex): Add __sz as opname for sizeof.
* method.c (build_overload_scope_ref): New function.
(build_overload_int): Handle complex expressions.  Set
numeric_output_need_bar if necessary.
(build_overload_value): Handle non-PARM_DECL nodes; this
routine is now used by build_overload_int.  Remove some
assignments to numeric_output_need_bar.  Use
build_overload_scope_ref.
(build_qualified_name): Note that some template mangled names end
with digits, and set numeric_output_need_bar appropriately.  Use
build_underscore_int.
* pt.c (unify): Change interface.
(type_unification_real): Likewise.
(determine_specialization): Use new interfaces.
(tsubst): Deal gracefully with situations in which the argument
vector is not fully filled.
(fn_type_unification): Use new interfaces.
(type_unification): Likewise.  Remove NOP_EXPR hack.
(type_unification_real): Likewise.
(unify): Likewise.  Deal with unification of complex expresions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18795 138bc75d-0d04-0410-961f-82ee72b054a4
14 files changed:
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/error.c
gcc/cp/method.c
gcc/cp/pt.c
gcc/cplus-dem.c
gcc/testsuite/g++.old-deja/g++.pt/crash4.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/expr1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/expr2.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/expr3.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/expr4.C [new file with mode: 0644]