This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/84979] [6/7/8 Regression] ICE with auto as template parameter and -fconcepts


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84979

--- Comment #4 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
Author: aoliva
Date: Thu Apr  5 04:26:36 2018
New Revision: 259124

URL: https://gcc.gnu.org/viewcvs?rev=259124&root=gcc&view=rev
Log:
[PR c++/84979] reject auto in explicit tmpl args for tmpl-fn

With concepts, we accept auto in explicit template arguments, but we
should only accept them for template classes.  Passing them to
template functions or variables is not allowed.  So, reject it, at
parse time if possible, at specialization time otherwise.


for  gcc/cp/ChangeLog

        PR c++/84979
        * pt.c (check_auto_in_tmpl_args): New.
        (tsubst_qualified_id): Use it to reject template args
        referencing auto for non-type templates.
        * parser.c (cp_parser_template_id): Likewise.
        * cp-tree.h (check_auto_in_tmpl_args): Declare.
        * typeck2.c (build_functional_cast): Report correct location
        for invalid use of auto.

for  gcc/testsuite/ChangeLog

        PR c++/84979
        * g++.dg/concepts/pr84979.C: New.
        * g++.dg/concepts/pr84979-2.C: New.
        * g++.dg/concepts/pr84979-3.C: New.

Added:
    trunk/gcc/testsuite/g++.dg/concepts/pr84979-2.C
    trunk/gcc/testsuite/g++.dg/concepts/pr84979-3.C
    trunk/gcc/testsuite/g++.dg/concepts/pr84979.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/parser.c
    trunk/gcc/cp/pt.c
    trunk/gcc/cp/typeck2.c
    trunk/gcc/testsuite/ChangeLog

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]