https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96867

            Bug ID: 96867
           Summary: ICE: tree check: expected parm_decl, have var_decl in
                    handle_omp_array_sections_1, at cp/semantics.c:5086
           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: ---

gcc-11.0.0-alpha20200830 snapshot (g:6ccadc4c0486ff011a32c74de1a31148acb3cbe2)
ICEs when compiling the following testcase, reduced from
test/OpenMP/target_update_to_messages.cpp from the clang 10.0.1 test suite, w/
-fopenmp:

int *cq;

void
l0 (int va)
{
#pragma omp target update to (va, cq[:])
}

% g++-11.0.0 -fopenmp -c jwicc9e4.cpp
jwicc9e4.cpp: In function 'void l0(int)':
jwicc9e4.cpp:6:41: internal compiler error: tree check: expected parm_decl,
have var_decl in handle_omp_array_sections_1, at cp/semantics.c:5086
    6 | #pragma omp target update to (va, cq[:])
      |                                         ^
0x7c2ce2 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/tree.c:9714
0x68e1c2 tree_check(tree_node*, char const*, int, char const*, tree_code)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/tree.h:3295
0x68e1c2 handle_omp_array_sections_1
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/semantics.c:5086
0xa61af2 handle_omp_array_sections
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/semantics.c:5159
0xa669e9 finish_omp_clauses(tree_node*, c_omp_region_type)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/semantics.c:7325
0x9bde94 cp_parser_omp_all_clauses
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:37627
0x9db114 cp_parser_omp_target_update
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:40714
0x9db114 cp_parser_omp_target
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:40893
0x9ae8b2 cp_parser_pragma
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:43948
0x9b77bc cp_parser_statement
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:11529
0x9b845d cp_parser_statement_seq_opt
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:11921
0x9b8538 cp_parser_compound_statement
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:11871
0x9d0bfc cp_parser_function_body
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:23170
0x9d0bfc cp_parser_ctor_initializer_opt_and_function_body
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:23221
0x9d43d9 cp_parser_function_definition_after_declarator
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:29116
0x9d5439 cp_parser_function_definition_from_specifiers_and_declarator
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:29032
0x9d5439 cp_parser_init_declarator
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:20776
0x9b473e cp_parser_simple_declaration
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:13811
0x9e06fe cp_parser_declaration
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:13510
0x9e0df0 cp_parser_translation_unit
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200830/work/gcc-11-20200830/gcc/cp/parser.c:4793

target_update_from_messages.cpp fails similarly.

Reply via email to