aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/ChangeLog
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2012-10-15 03:32:03 -0400
committerJason Merrill <jason@gcc.gnu.org>2012-10-15 03:32:03 -0400
commit85b5d65a94c66fed37b29b04010b93fd13936219 (patch)
tree8285868a5a9c87582ef3660e51cb5a55576cb450 /gcc/cp/ChangeLog
parentd0d4f8c78e1b9d1038f0ec5fd0c59955dd1cc1f2 (diff)
downloadgcc-85b5d65a94c66fed37b29b04010b93fd13936219.zip
gcc-85b5d65a94c66fed37b29b04010b93fd13936219.tar.gz
gcc-85b5d65a94c66fed37b29b04010b93fd13936219.tar.bz2
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
Diffstat (limited to 'gcc/cp/ChangeLog')
-rw-r--r--gcc/cp/ChangeLog31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 27f0d55..6621c11 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,34 @@
+2012-10-14 Jason Merrill <jason@redhat.com>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ 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.
+
2012-10-12 Jakub Jelinek <jakub@redhat.com>
PR c/54381