-
- Downloads
Implement C++11 inheriting constructors.
* cp-tree.h (cpp0x_warn_str): Add CPP0X_INHERITING_CTORS.
(DECL_INHERITED_CTOR_BASE, SET_DECL_INHERITED_CTOR_BASE): New.
(special_function_kind): Add sfk_inheriting_constructor.
* class.c (add_method): An inheriting ctor is hidden by a
user-declared one.
(one_inheriting_sig, one_inherited_ctor): New.
(add_implicitly_declared_members): Handle inheriting ctors.
* error.c (maybe_warn_cpp0x): Handle CPP0X_INHERITING_CTORS.
* init.c (emit_mem_initializers): Don't set LOOKUP_DEFAULTED
for an inheriting constructor.
* method.c (type_has_trivial_fn): Handle sfk_inheriting_constructor.
(type_set_nontrivial_flag): Likewise.
(add_one_base_init): Split out from...
(do_build_copy_constructor): ...here. Handle inheriting constructors.
(locate_fn_flags): Handle a list of arg types.
(synthesized_method_walk): Handle inheriting constructors.
(maybe_explain_implicit_delete): Likewise.
(deduce_inheriting_ctor): New.
(implicitly_declare_fn): Handle inheriting constructors.
* name-lookup.c (push_class_level_binding_1): An inheriting constructor
does not declare the base's name.
(do_class_using_decl): Allow inheriting constructors.
* pt.c (template_parms_to_args): Split from current_template_args.
(add_inherited_template_parms): New.
(tsubst_decl): Handle inheriting constructors.
* tree.c (special_function_p): Handle inheriting constructors.
Co-Authored-By:
Ville Voutilainen <ville.voutilainen@gmail.com>
From-SVN: r192448
Showing
- gcc/cp/ChangeLog 31 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/class.c 85 additions, 5 deletionsgcc/cp/class.c
- gcc/cp/cp-tree.h 16 additions, 2 deletionsgcc/cp/cp-tree.h
- gcc/cp/error.c 5 additions, 0 deletionsgcc/cp/error.c
- gcc/cp/init.c 2 additions, 1 deletiongcc/cp/init.c
- gcc/cp/method.c 172 additions, 40 deletionsgcc/cp/method.c
- gcc/cp/name-lookup.c 9 additions, 4 deletionsgcc/cp/name-lookup.c
- gcc/cp/pt.c 48 additions, 10 deletionsgcc/cp/pt.c
- gcc/cp/tree.c 2 additions, 0 deletionsgcc/cp/tree.c
- gcc/testsuite/ChangeLog 16 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/cpp0x/inh-ctor1.C 17 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor1.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor10.C 14 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor10.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor11.C 14 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor11.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor12.C 26 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor12.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C 22 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor13.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor2.C 19 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor2.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor3.C 17 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor3.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor4.C 18 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor4.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor5.C 21 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor5.C
- gcc/testsuite/g++.dg/cpp0x/inh-ctor6.C 15 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/inh-ctor6.C
Loading
Please register or sign in to comment