https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98742
Bug ID: 98742
Summary: [11 Regression] ICE: tree check: expected class
'type', have 'exceptional' (error_mark) in
finish_omp_clauses, at cp/semantics.c:7435
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Keywords: 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++-11.0.0-alpha20210117 snapshot (g:0f4c8f517b7954e113afb4d5c7212123c8ee2418)
ICEs when compiling the following testcase, extracted from
test/OpenMP/task_messages.cpp from the clang 11.0.1 test suite, w/ -fopenmp:
void foo() {
#pragma omp task detach(0)
;
}
% g++-11.0.0 -fopenmp -c xmwkrwrg.cpp
xmwkrwrg.cpp: In function 'void foo()':
xmwkrwrg.cpp:2:25: error: expected unqualified-id before numeric constant
2 | #pragma omp task detach(0)
| ^
xmwkrwrg.cpp:2:27: internal compiler error: tree check: expected class 'type',
have 'exceptional' (error_mark) in finish_omp_clauses, at cp/semantics.c:7435
2 | #pragma omp task detach(0)
| ^
0x80a0d3 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/tree.c:9862
0x6cc3b5 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/tree.h:3461
0x6cc3b5 finish_omp_clauses(tree_node*, c_omp_region_type)
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/semantics.c:7435
0xa59ef4 cp_parser_omp_all_clauses
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:38597
0xa3bd17 cp_parser_omp_task
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:41107
0xa3bd17 cp_parser_omp_construct
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:44371
0xa3d68d cp_parser_pragma
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:45000
0xa45b08 cp_parser_statement
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:11720
0xa4688d cp_parser_statement_seq_opt
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:12112
0xa46968 cp_parser_compound_statement
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:12062
0xa63ca4 cp_parser_function_body
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:23990
0xa63ca4 cp_parser_ctor_initializer_opt_and_function_body
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:24041
0xa658ca cp_parser_function_definition_after_declarator
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:29931
0xa66d29 cp_parser_function_definition_from_specifiers_and_declarator
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:29847
0xa66d29 cp_parser_init_declarator
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:21563
0xa429e7 cp_parser_simple_declaration
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:14381
0xa700cd cp_parser_declaration
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:14078
0xa70bc8 cp_parser_toplevel_declaration
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:14107
0xa70bc8 cp_parser_translation_unit
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:4936
0xa70bc8 c_parse_file()
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210117/work/gcc-11-20210117/gcc/cp/parser.c:45172