aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.h
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2017-02-09 15:55:54 -0500
committerJason Merrill <jason@gcc.gnu.org>2017-02-09 15:55:54 -0500
commita56c0ac08242269bbcc4bd1f480eda2378336776 (patch)
treefdb30ba42b1dd45219d4eab973e41db807ec03b7 /gcc/cp/cp-tree.h
parent388dde26a5b5a6740018340953955eb05abba817 (diff)
downloadgcc-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.h6
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);