This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
egcs/gcc/cp ChangeLog cp-tree.h decl.c init.c ...
- To: gcc-cvs at gcc dot gnu dot org
- Subject: egcs/gcc/cp ChangeLog cp-tree.h decl.c init.c ...
- From: mmitchel at gcc dot gnu dot org
- Date: 9 Apr 2000 04:28:33 -0000
CVSROOT: /cvs/gcc
Module name: egcs
Changes by: mmitchel@sourceware.cygnus.com 00/04/08 21:28:33
Modified files:
gcc/cp : ChangeLog cp-tree.h decl.c init.c semantics.c
typeck.c
Log message:
Under the new ABI, constructors don't return `this'.
* cp-tree.h (warn_reorder): Declare.
(special_function_kind): New enum.
(global_base_init_list): Remove declaration.
(emit_base_init): Don't return a value.
(check_base_init): Don't declare.
(is_aggr_typedef): Likewise.
* decl.c (check_special_function_return_type): New function.
(return_types): Remove.
(grokdeclarator): Use check_special_function_return_type.
(start_function): Don't initialize ctor_label under the new ABI.
(finish_construtor_body): Don't create a corresponding LABEL_STMT.
* init.c (begin_init_stmts): Move to top of file.
(finish_init_stmts): Likewise.
(warn_reorder): Don't declare.
(emit_base_init): Don't create a STMT_EXPR here. Don't return a
value.
(check_base_init): Remove.
(is_aggr_typedef): Likewise.
(build_new_1): Don't use the return value of a constructor.
* semantics.c (setup_vtbl_ptr): Don't use the return value
of emit_base_init.
* typeck.c (check_return_expr): Don't magically convert return
statements into `return this' in constructors under the new ABI.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.1694&r2=1.1695
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/cp-tree.h.diff?cvsroot=gcc&r1=1.433&r2=1.434
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/decl.c.diff?cvsroot=gcc&r1=1.582&r2=1.583
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/init.c.diff?cvsroot=gcc&r1=1.180&r2=1.181
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/semantics.c.diff?cvsroot=gcc&r1=1.134&r2=1.135
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/typeck.c.diff?cvsroot=gcc&r1=1.273&r2=1.274