This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/78511] New: ICE on using concept name as a "requires" parameter
- From: "gcc-bugzilla at minijackson dot 33mail.com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 24 Nov 2016 13:33:38 +0000
- Subject: [Bug c++/78511] New: ICE on using concept name as a "requires" parameter
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78511
Bug ID: 78511
Summary: ICE on using concept name as a "requires" parameter
Product: gcc
Version: c++-concepts
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: gcc-bugzilla at minijackson dot 33mail.com
Target Milestone: ---
GCC version and system:
gcc (Gentoo 6.2.0-r1 p1.1) 6.2.0
Compilation options:
-altivec -awt -cilk cxx -debug -doc -fixed-point fortran gcj -go -graphite
-hardened -jit -libssp -mpx multilib nls nptl -objc -objc++ -objc-gc openmp pch
-pie -regression-test sanitize -ssp -vanilla vtv
Example program (test.cpp):
template <typename T>
concept bool A = true;
template <typename T>
concept bool B = requires(A a) {
a;
}
Command line:
g++ -fconcepts -std=c++1z test.cpp
Error:
test.cpp:5:27: internal compiler error: in synthesize_implicit_template_parm,
at cp/parser.c:37866
concept bool B = requires(A a) {
^
test.ii generated file:
# 1 "test.cpp"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "test.cpp"
template <typename T>
concept bool A = true;
template <typename T>
concept bool B = requires(A a) {
a;
}