[Bug c/96315] ICE with variable size struct and openmp

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jul 26 18:57:51 GMT 2020


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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|internal compiler error     |ICE with variable size
                   |with variable size struct   |struct and openmp
                   |and openmp                  |
             Status|UNCONFIRMED                 |NEW
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |marxin at gcc dot gnu.org
           Keywords|                            |openmp
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2020-07-26

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed. Reduced test-case:

$ cat pr96315.c
int main_njack;
void main() {
  struct {
    double aic[main_njack];
  } res;
#pragma omp parallel
  for (;;)
    res;
}

$ gcc pr96315.c -c -O1 -fopenmp
during GIMPLE pass: omplower
pr96315.c: In function \u2018main\u2019:
pr96315.c:6:9: internal compiler error: tree check: expected tree that contains
\u2018decl minimal\u2019 structure, have \u2018error_mark\u2019 in
remap_type_1, at tree-inline.c:586
    6 | #pragma omp parallel
      |         ^~~
0x72ef57 tree_contains_struct_check_failed(tree_node const*,
tree_node_structure_enum, char const*, int, char const*)
        /home/marxin/Programming/gcc/gcc/tree.c:9861
0x6d80a8 contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
        /home/marxin/Programming/gcc/gcc/tree.h:3417
0x6d80a8 remap_type_1
        /home/marxin/Programming/gcc/gcc/tree-inline.c:586
0xe410d0 remap_type(tree_node*, copy_body_data*)
        /home/marxin/Programming/gcc/gcc/tree-inline.c:736
0xe40bb7 remap_type_1
        /home/marxin/Programming/gcc/gcc/tree-inline.c:448
0xe410d0 remap_type(tree_node*, copy_body_data*)
        /home/marxin/Programming/gcc/gcc/tree-inline.c:736
0xc85312 fixup_remapped_decl
        /home/marxin/Programming/gcc/gcc/omp-low.c:862
0xc8903d scan_sharing_clauses
        /home/marxin/Programming/gcc/gcc/omp-low.c:1567
0xc8db11 scan_omp_parallel
        /home/marxin/Programming/gcc/gcc/omp-low.c:2030
0xc8db11 scan_omp_1_stmt
        /home/marxin/Programming/gcc/gcc/omp-low.c:3732
0xaeefaa walk_gimple_stmt(gimple_stmt_iterator*, tree_node*
(*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**,
int*, void*), walk_stmt_info*)
        /home/marxin/Programming/gcc/gcc/gimple-walk.c:578
0xaef170 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*,
bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        /home/marxin/Programming/gcc/gcc/gimple-walk.c:51
0xaef0a1 walk_gimple_stmt(gimple_stmt_iterator*, tree_node*
(*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**,
int*, void*), walk_stmt_info*)
        /home/marxin/Programming/gcc/gcc/gimple-walk.c:641
0xaef170 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*,
bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        /home/marxin/Programming/gcc/gcc/gimple-walk.c:51
0xaef061 walk_gimple_stmt(gimple_stmt_iterator*, tree_node*
(*)(gimple_stmt_iterator*, bool*, walk_stmt_info*), tree_node* (*)(tree_node**,
int*, void*), walk_stmt_info*)
        /home/marxin/Programming/gcc/gcc/gimple-walk.c:686
0xaef170 walk_gimple_seq_mod(gimple**, tree_node* (*)(gimple_stmt_iterator*,
bool*, walk_stmt_info*), tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        /home/marxin/Programming/gcc/gcc/gimple-walk.c:51
0xc98e3a scan_omp
        /home/marxin/Programming/gcc/gcc/omp-low.c:3855
0xc98e3a execute_lower_omp
        /home/marxin/Programming/gcc/gcc/omp-low.c:13065
0xc98e3a execute
        /home/marxin/Programming/gcc/gcc/omp-low.c:13123
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.


More information about the Gcc-bugs mailing list