https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97670
Bug ID: 97670 Summary: [11 Regression] ICE: tree check: expected tree that contains 'decl minimal' structure, have 'mem_ref' in finistree check: expected tree that contains 'decl minimal' structure, have 'mem_ref' in finish_omp_clauses, at ch_omp_clauses, at cp/semantics.c:8251 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-alpha20201101 snapshot (g:590febb5f6624f78b36402a7c9a9c318978f1efa) ICEs when compiling the following testcase, reduced from test/OpenMP/for_reduction_codegen_UDR.cpp from the clang 10.0.1 test suite, w/ -fopenmp: enum omp_allocator_handle_t { omp_cgroup_mem_alloc = 6, }; struct pd { }; void d9 () { int t7; pd gy[1] = { pd(), }; #pragma omp for reduction (& : gy) allocate (omp_cgroup_mem_alloc: gy) for (t7 = 0; t7 < 1; ++t7) { } } % g++-11.0.0 -fopenmp -c xbxpjk57.cpp xbxpjk57.cpp: In function 'void d9()': xbxpjk57.cpp:14:32: error: user defined reduction not found for 'gy' 14 | #pragma omp for reduction (& : gy) allocate (omp_cgroup_mem_alloc: gy) | ^~ xbxpjk57.cpp:14:71: internal compiler error: tree check: expected tree that contains 'decl minimal' structure, have 'mem_ref' in finish_omp_clauses, at cp/semantics.c:8251 14 | #pragma omp for reduction (& : gy) allocate (omp_cgroup_mem_alloc: gy) | ^ 0x7df75e tree_contains_struct_check_failed(tree_node const*, tree_node_structure_enum, char const*, int, char const*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/tree.c:9905 0x6a8d5c contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/tree.h:3427 0x6a8d5c finish_omp_clauses(tree_node*, c_omp_region_type) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/semantics.c:8251 0x9dcb4c cp_parser_omp_all_clauses /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:37749 0x9f8028 cp_parser_omp_for /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:39744 0x9cc29c cp_parser_omp_construct /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:43421 0x9cd9ad cp_parser_pragma /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:44079 0x9d5ba4 cp_parser_statement /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:11548 0x9d688d cp_parser_statement_seq_opt /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:11940 0x9d6968 cp_parser_compound_statement /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:11890 0x9ef944 cp_parser_function_body /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:23262 0x9ef944 cp_parser_ctor_initializer_opt_and_function_body /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:23313 0x9f3179 cp_parser_function_definition_after_declarator /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:29205 0x9f41a9 cp_parser_function_definition_from_specifiers_and_declarator /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:29121 0x9f41a9 cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:20848 0x9d2b2e cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:13888 0x9ff526 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:13587 0x9ffb90 cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:4793 0x9ffb90 c_parse_file() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:44251 0xb22e0d c_common_parse_file() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/c-family/c-opts.c:1198