This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
egcs/gcc cp/ChangeLog cp/Make-lang.in cp/Makef ...
- To: gcc-cvs at gcc dot gnu dot org
- Subject: egcs/gcc cp/ChangeLog cp/Make-lang.in cp/Makef ...
- From: mmitchel at gcc dot gnu dot org
- Date: 28 May 2000 02:58:20 -0000
CVSROOT: /cvs/gcc
Module name: egcs
Changes by: mmitchel@sourceware.cygnus.com 00/05/27 19:58:19
Modified files:
gcc/cp : ChangeLog Make-lang.in Makefile.in call.c
cp-tree.h decl.c decl2.c error.c init.c lex.c
method.c parse.c parse.y pt.c tree.c typeck.c
Added files:
gcc/testsuite/g++.old-deja/g++.other: op1.C
gcc/cp : operators.def
Log message:
2000-05-27 Alex Samuel <samuel@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (ansi_opname): Make it a macro.
(ansi_assopname): Likewise.
(struct lang_decl_flags): Add assignment_operator_p.
(struct lang_decl): Add operator_code.
(DECL_VTT_PARM): Adjust.
(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
overloaded operator.
(SET_OVERLOADED_OPERATOR_CODE): New macro.
(DECL_ASSIGNMENT_OPERATOR_P): New macro.
(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
(opname_tab): Remove.
(assignop_tab): Likewise.
(operator_name_info_t): New type.
(operator_name_info): New variable.
(assignment_operator_name_info): Likewise.
(build_cp_library_fn): Remove declaration.
(push_cp_library_fn): Likewise.
(operator_name_string): Likewise.
(build_decl_overload): Likewise.
* call.c (print_z_candidates): Simplify.
(build_object_call): Adjust usage of ansi_opname. Use
DECL_OVERLOADED_OPERATOR_P.
(op_error): Adjust operator name lookup.
(build_conditional_expr): Adjust usage of ansi_opname.
(build_new_op): Likewise.
(build_op_delete_call): Likewise.
(build_over_call): Likewise.
(joust): Use DECL_OVERLOADED_OPERATOR_P.
* decl.c (duplicate_decls): Copy operator_code.
(init_decl_processing): Adjust parameters to push_cp_library_fn.
(builtin_function): Adjust parameters to build_library_fn_1.
(build_library_fn_1): Accept an overloaded operator code.
(build_library_fn): Pass ERROR_MARK.
(build_cp_library_fn): Accept an overloaded operator code.
(push_cp_library_fn): Likewise.
(grokfndecl): Tweak.
(grokdeclarator): Simplify code to compute names of overloaded
operators. Adjust use of ansi_opname.
(ambi_op_p): Work on tree_codes, not identifiers.
(unary_op_p): Likewise.
(grok_op_properties): Likewise.
(start_function): Use DECL_OVERLOADED_OPERATOR_P.
(lang_mark_tree): Don't try to mark the operator_code.
* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
* error.c (dump_decl): Remove special handling for operator
names.
(dump_function_name): Likewise.
(dump_expr): Adjust name lookup of operators.
(op_to_string): Simplify.
(assop_to_string): Likewise.
* init.c (build_new_1): Adjust use of ansi_opname.
* lex.c (opname_tab): Remove.
(assignop_tab): Likewise.
(ansi_opname): Likewise.
(ansi_assopname): Likewise.
(operator_name_string): Likewise.
(reinit_lang_specific): Likewise.
(operator_name_info): New variable.
(assignment_operator_name_info): Likewise.
(init_operators): New function.
(init_parse): Use it.
(do_identifier): Adjust use of ansi_opname.
* method.c (mangle_expression): Don't use ansi_opname for
mangling.
(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
(build_decl_overload): Remove.
(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
(do_build_assign_ref): Adjust use of ansi_opname.
(synthesize_method): Likewise.
(implicitly_declare_fn): Likewise.
* operators.def: New file.
* parse.y (operator): Adjust use of ansi_opname.
* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
(set_mangled_name_for_template_decl): Don't play games with
current_namespace.
(special_function_p): Adjust use of ansi_opname.
* typeck.c (check_return_expr): Likewise.
* Make-lang.in (cc1plus): Depend on operators.def.
* Makefile.in (lex.o): Likewise.
(decl.o): Likewise.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/testsuite/g++.old-deja/g++.other/op1.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/operators.def.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.1789&r2=1.1790
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/Make-lang.in.diff?cvsroot=gcc&r1=1.51&r2=1.52
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/Makefile.in.diff?cvsroot=gcc&r1=1.84&r2=1.85
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/call.c.diff?cvsroot=gcc&r1=1.216&r2=1.217
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/cp-tree.h.diff?cvsroot=gcc&r1=1.463&r2=1.464
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/decl.c.diff?cvsroot=gcc&r1=1.614&r2=1.615
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/decl2.c.diff?cvsroot=gcc&r1=1.355&r2=1.356
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/error.c.diff?cvsroot=gcc&r1=1.113&r2=1.114
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/init.c.diff?cvsroot=gcc&r1=1.194&r2=1.195
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/lex.c.diff?cvsroot=gcc&r1=1.197&r2=1.198
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/method.c.diff?cvsroot=gcc&r1=1.159&r2=1.160
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/parse.c.diff?cvsroot=gcc&r1=1.164&r2=1.165
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/parse.y.diff?cvsroot=gcc&r1=1.173&r2=1.174
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/pt.c.diff?cvsroot=gcc&r1=1.428&r2=1.429
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/tree.c.diff?cvsroot=gcc&r1=1.199&r2=1.200
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/typeck.c.diff?cvsroot=gcc&r1=1.288&r2=1.289