aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2016-10-04 16:42:58 -0400
committerJason Merrill <jason@gcc.gnu.org>2016-10-04 16:42:58 -0400
commit76b294d48d6c375b76f1695ea56c960d5473439b (patch)
tree0984f230491f3ffe8ce6006150b0dcd48d966e4b /gcc/gimple-fold.c
parent8ff04ff92d9d88ca84671e36600572558216eab2 (diff)
downloadgcc-76b294d48d6c375b76f1695ea56c960d5473439b.zip
gcc-76b294d48d6c375b76f1695ea56c960d5473439b.tar.gz
gcc-76b294d48d6c375b76f1695ea56c960d5473439b.tar.bz2
Implement P0091R2, Template argument deduction for class templates.
* parser.c (cp_parser_simple_type_specifier): Parse class placeholder. Use the location of the beginning of the type-specifier. (cp_parser_init_declarator): Parse deduction guide. (cp_parser_diagnose_invalid_type_name): Mention class deduction. (cp_parser_type_id_1): Don't accept class placeholder as template arg. * cp-tree.h (CLASS_PLACEHOLDER_TEMPLATE): New. * decl.c (grokdeclarator): Check for uninitialized auto here. (start_decl_1): Not here. (cp_finish_decl): Or here. Don't collapse a list when doing class deduction. (grokfndecl): Check deduction guide scope and body. * error.c (dump_decl, dump_function_decl, dump_function_name): Handle deduction guides. * pt.c (make_template_placeholder, do_class_deduction): New. (build_deduction_guide, rewrite_template_parm): New. (dguide_name, dguide_name_p, deduction_guide_p): New. (do_auto_deduction): Call do_class_deduction. (splice_late_return_type, is_auto): Handle class placeholders. (template_parms_level_to_args): Split from template_parms_to_args. (tsubst_template_parms_level): Split from tsubst_template_parms. * typeck2.c (build_functional_cast): Handle class placeholder. From-SVN: r240756
Diffstat (limited to 'gcc/gimple-fold.c')
0 files changed, 0 insertions, 0 deletions