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