* cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER.
(complete_ctor_identifier): New macro. (special_function_kind): Add sfk_copy_constructor and sfk_assignment_operator. (LOOKUP_HAS_IN_CHARGE): Remove. (cons_up_default_function): Rename to ... (implicitly_declare_fn): ... this. * call.c (build_new_method_call): Add in-charge parameters for constructors here. * class.c (add_implicitly_declared_members): Change parameter name from cant_have_assignment to cant_have_const_assignment. Replace calls to cons_up_default_function to implicitly_declare_fn. * cvt.c (ocp_convert): Use complete_ctor_identifier. * decl.c (initialize_predefined_identifiers): Initialize it. (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of complex expression. * init.c (expand_default_init): Don't calculate the in-charge parameter here. (build_new_1): Likewise. * lex.c (cons_up_default_function): Move to method.c. * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. (implicitly_declare_fn): New function. * typeck.c (build_static_cast): Use complete_ctor_identifier. (build_modify_expr): Likewise. * typeck2.c (build_functional_cast): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33038 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/cp/ChangeLog 26 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/call.c 29 additions, 15 deletionsgcc/cp/call.c
- gcc/cp/class.c 15 additions, 14 deletionsgcc/cp/class.c
- gcc/cp/cp-tree.h 8 additions, 6 deletionsgcc/cp/cp-tree.h
- gcc/cp/cvt.c 2 additions, 1 deletiongcc/cp/cvt.c
- gcc/cp/decl.c 3 additions, 7 deletionsgcc/cp/decl.c
- gcc/cp/init.c 8 additions, 17 deletionsgcc/cp/init.c
- gcc/cp/lex.c 0 additions, 136 deletionsgcc/cp/lex.c
- gcc/cp/method.c 84 additions, 1 deletiongcc/cp/method.c
- gcc/cp/typeck.c 6 additions, 6 deletionsgcc/cp/typeck.c
- gcc/cp/typeck2.c 1 addition, 1 deletiongcc/cp/typeck2.c
Loading
Please register or sign in to comment