diff options
author | Jason Merrill <jason@redhat.com> | 2017-02-09 15:55:54 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2017-02-09 15:55:54 -0500 |
commit | a56c0ac08242269bbcc4bd1f480eda2378336776 (patch) | |
tree | fdb30ba42b1dd45219d4eab973e41db807ec03b7 /gcc/cp/cp-tree.h | |
parent | 388dde26a5b5a6740018340953955eb05abba817 (diff) | |
download | gcc-a56c0ac08242269bbcc4bd1f480eda2378336776.zip gcc-a56c0ac08242269bbcc4bd1f480eda2378336776.tar.gz gcc-a56c0ac08242269bbcc4bd1f480eda2378336776.tar.bz2 |
PR c++/79316 - default argument in deduction guide
PR c++/79350 - explicit deduction guide
* parser.c (cp_parser_constructor_declarator_p)
(cp_parser_direct_declarator): Parse deduction guides more like
constructors.
* cp-tree.h (enum special_function_kind): Add sfk_deduction_guide.
* tree.c (special_function_p): Return it.
* decl.c (check_special_function_return_type): Handle it.
(grokdeclarator, grokfndecl): Adjust.
(cp_finish_decl): Pass flags to do_auto_deduction.
* error.c (dump_decl_name): Use TFF_UNQUALIFIED_NAME.
* pt.c (dguide_name_p): Take a const_tree.
(do_class_deduction): Handle explicit.
(do_auto_deduction): Pass flags through.
(build_deduction_guide): Copy explicit flag.
From-SVN: r245314
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r-- | gcc/cp/cp-tree.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 77bf614..a410926 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -4733,6 +4733,7 @@ enum special_function_kind { deletes the object after it has been destroyed. */ sfk_conversion, /* A conversion operator. */ + sfk_deduction_guide, /* A class template deduction guide. */ sfk_inheriting_constructor /* An inheriting constructor */ }; @@ -6150,7 +6151,8 @@ extern tree do_auto_deduction (tree, tree, tree); extern tree do_auto_deduction (tree, tree, tree, tsubst_flags_t, auto_deduction_context, - tree = NULL_TREE); + tree = NULL_TREE, + int = LOOKUP_NORMAL); extern tree type_uses_auto (tree); extern tree type_uses_auto_or_concept (tree); extern void append_type_to_template_for_access_check (tree, tree, tree, @@ -6280,7 +6282,7 @@ extern tree extract_fnparm_pack (tree, tree *); extern tree template_parm_to_arg (tree); extern tree dguide_name (tree); extern bool dguide_name_p (tree); -extern bool deduction_guide_p (tree); +extern bool deduction_guide_p (const_tree); /* in repo.c */ extern void init_repo (void); |