https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94512
Bug ID: 94512
Summary: [10 Regression] ICE in tsubst_expr, at cp/pt.c:18210
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: error-recovery, ice-on-invalid-code, openmp
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
g++-10.0.1-alpha20200405 snapshot (g:2a1a0c8c0db0aae50a2cebce59bd64334cd6ba2a)
ICEs when compiling the following testcase, extracted from
test/OpenMP/parallel_master_taskloop_simd_collapse_messages.cpp from the clang
10.0.0 test suite, w/ -fopenmp:
void
ow ();
template <int>
void
ho ()
{
#pragma omp parallel master taskloop
ow ();
}
void
th ()
{
ho<0> ();
}
% g++-10.0.1 -fopenmp -c e4oc5ifw.cpp
e4oc5ifw.cpp: In function 'void ho()':
e4oc5ifw.cpp:9:3: error: for statement expected before 'ow'
9 | ow ();
| ^~
e4oc5ifw.cpp: In instantiation of 'void ho() [with int <anonymous> = 0]':
e4oc5ifw.cpp:15:10: required from here
e4oc5ifw.cpp:9:3: internal compiler error: in tsubst_expr, at cp/pt.c:18210
0x659911 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200405/work/gcc-10-20200405/gcc/cp/pt.c:18210
0x9ed1e2 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200405/work/gcc-10-20200405/gcc/cp/pt.c:17696
0x9ed997 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200405/work/gcc-10-20200405/gcc/cp/pt.c:18014
0x9eaad6 instantiate_decl(tree_node*, bool, bool)
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200405/work/gcc-10-20200405/gcc/cp/pt.c:25538
0xa1b7eb instantiate_pending_templates(int)
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200405/work/gcc-10-20200405/gcc/cp/pt.c:25654
0x920d33 c_parse_final_cleanups()
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200405/work/gcc-10-20200405/gcc/cp/decl2.c:4874