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

            Bug ID: 91110
           Summary: [10 Regression] ICE: tree check: expected class
                    'type', have 'exceptional' (error_mark) in
                    cp_omp_mappable_type_1, at cp/decl2.c:1421
           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.0-alpha20190707 snapshot (r273184) ICEs when compiling the following
testcase derived from gcc/testsuite/gcc.dg/gomp/_Atomic-5.c w/ -fopenmp:

void
f1 (void)
{
  X int b[2];
  b[0] = 1;
  #pragma omp target map(to: b)
  ;
}

% g++-10.0.0-alpha20190707 -fopenmp -c e8gxtyxe.c
e8gxtyxe.c: In function 'void f1()':
e8gxtyxe.c:4:3: error: 'X' was not declared in this scope
    4 |   X int b[2];
      |   ^
e8gxtyxe.c:5:3: error: 'b' was not declared in this scope
    5 |   b[0] = 1;
      |   ^
e8gxtyxe.c:6:30: error: 'b' does not have a mappable type in 'map' clause
    6 |   #pragma omp target map(to: b)
      |                              ^
e8gxtyxe.c:6:32: internal compiler error: tree check: expected class 'type',
have 'exceptional' (error_mark) in cp_omp_mappable_type_1, at cp/decl2.c:1421
    6 |   #pragma omp target map(to: b)
      |                                ^
0x7d125e tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/tree.c:9950
0x5f39fa tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/tree.h:3340
0x5f39fa cp_omp_mappable_type_1
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/decl2.c:1421
0xa43c69 finish_omp_clauses(tree_node*, c_omp_region_type)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/semantics.c:7241
0x9b3267 cp_parser_omp_all_clauses
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:35735
0x9c4146 cp_parser_omp_target
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:38918
0x99f583 cp_parser_pragma
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:41352
0x9a76fd cp_parser_statement
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:11279
0x9a8665 cp_parser_statement_seq_opt
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:11667
0x9a8735 cp_parser_compound_statement
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:11621
0x9c0cbc cp_parser_function_body
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:22651
0x9c0cbc cp_parser_ctor_initializer_opt_and_function_body
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:22702
0x9c15ad cp_parser_function_definition_after_declarator
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:28016
0x9c23a3 cp_parser_function_definition_from_specifiers_and_declarator
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:27932
0x9c23a3 cp_parser_init_declarator
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:20288
0x9a4e7d cp_parser_simple_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:13546
0x9c8822 cp_parser_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:13243
0x9c8eb8 cp_parser_translation_unit
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:4699
0x9c8eb8 c_parse_file()
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/cp/parser.c:41495
0xad25ec c_common_parse_file()
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190707/work/gcc-10-20190707/gcc/c-family/c-opts.c:1160

Reply via email to