[Bug c++/85991] [Concepts] Template placeholder: ICE cp_parser_lookup_name, at cp/parser.c:26223

2021-07-23 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85991

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
   Target Milestone|--- |9.0
 Resolution|--- |FIXED

--- Comment #2 from Andrew Pinski  ---
(In reply to Jonathan Wakely from comment #1)
> No ICE with current trunk:

Using -std=c++17 -fconcepts (as the syntax for concepts slightly changed):
:3:10: error: 'TmplC' does not constrain a type
3 | void f(A> *);
  |  ^~~
:1:56: note: concept defined here
1 | template  class, int> concept bool TmplC = true;
  |^
:3:10: error: wrong number of template arguments (1, should be 2)
3 | void f(A> *);
  |  ^~~
:1:56: note: provided for 'template
class, int  > concept const bool TmplC<
,  >'
1 | template  class, int> concept bool TmplC = true;
  |^
:3:10: error: wrong number of template arguments (1, should be 2)
3 | void f(A> *);
  |  ^~~
:1:56: note: provided for 'template
class, int  > concept const bool TmplC<
,  >'
1 | template  class, int> concept bool TmplC = true;
  |^
:3:17: error: template argument 1 is invalid
3 | void f(A> *);
  | ^~
Compiler returned: 1

So I think we can close this as fixed.
I could not reproduce the ICE in released version of GCC 9.1 either.

[Bug c++/85991] [Concepts] Template placeholder: ICE cp_parser_lookup_name, at cp/parser.c:26223

2019-10-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85991

Jonathan Wakely  changed:

   What|Removed |Added

 Blocks||67491

--- Comment #1 from Jonathan Wakely  ---
No ICE with current trunk:

b.cc:1:51: warning: the 'bool' keyword is not allowed in a C++20 concept
definition
1 | template  class, int> concept bool TmplC = true;
  |   ^~~~
b.cc:3:10: error: 'TmplC' does not constrain a type
3 | void f(A> *);
  |  ^~~
b.cc:1:56: note: concept defined here
1 | template  class, int> concept bool TmplC = true;
  |^
b.cc:3:10: error: wrong number of template arguments (1, should be 2)
3 | void f(A> *);
  |  ^~~
b.cc:1:56: note: provided for 'template
class, int  > concept const bool TmplC<
,  >'
1 | template  class, int> concept bool TmplC = true;
  |^
b.cc:3:10: error: wrong number of template arguments (1, should be 2)
3 | void f(A> *);
  |  ^~~
b.cc:1:56: note: provided for 'template
class, int  > concept const bool TmplC<
,  >'
1 | template  class, int> concept bool TmplC = true;
  |^
b.cc:3:17: error: template argument 1 is invalid
3 | void f(A> *);
  | ^~


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
[Bug 67491] [meta-bug] concepts issues