Under the new ABI, constructors don't return `this'.
authorMark Mitchell <mark@codesourcery.com>
Sun, 9 Apr 2000 04:28:33 +0000 (04:28 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Sun, 9 Apr 2000 04:28:33 +0000 (04:28 +0000)
commit3dbc07b651f517fa2d07de91473a30b4216d091b
tree6f1b0dea92e2a38ea78ec4706a12cc4f332eeedf
parent4eaf5996ad3b761bfb2abd6d65f78b43c4f9a4e5
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.

From-SVN: r33035
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/init.c
gcc/cp/semantics.c
gcc/cp/typeck.c