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

            Bug ID: 82835
           Summary: [8 Regression] ICE on valid code with -fopenmp
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: openmp
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org, jason at gcc dot gnu.org
  Target Milestone: ---

Starting from r251422, we ICE on:

$ cat ice7.ii
int a, b;
template <class> class c {
public:
  c(int = a);
};
class d {
  void e();
  struct {
    int g;
  } chtrellis;
};
void d::e() {
  c<int> f;
#pragma omp for private(f)
  for (b = 0; b < chtrellis.g; b++)
    ;
}

$ g++ ice7.ii -fopenmp -c
during GIMPLE pass: omplower
ice7.ii: In member function ‘void d::e()’:
ice7.ii:14:9: internal compiler error: Segmentation fault
 #pragma omp for private(f)
         ^~~
0xd9d4ff crash_signal
        ../../gcc/toplev.c:324
0x7b3cc5 contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
        ../../gcc/tree.h:3201
0x7b3cc5 tsubst_default_argument(tree_node*, int, tree_node*, tree_node*, int)
        ../../gcc/cp/pt.c:12043
0x5fe61e convert_default_arg(tree_node*, tree_node*, tree_node*, int, int)
        ../../gcc/cp/call.c:7320
0x666237 cxx_omp_clause_apply_fn
        ../../gcc/cp/cp-gimplify.c:1792
0xc9684c lower_rec_input_clauses
        ../../gcc/omp-low.c:4185
0xc9edd9 lower_omp_for
        ../../gcc/omp-low.c:6918
0xc8e1ae lower_omp_1
        ../../gcc/omp-low.c:8834
0xc8e1ae lower_omp
        ../../gcc/omp-low.c:8971
0xc8d165 lower_omp_1
        ../../gcc/omp-low.c:8811
0xc8d165 lower_omp
        ../../gcc/omp-low.c:8971
0xc8d34d lower_omp_1
        ../../gcc/omp-low.c:8819
0xc8d34d lower_omp
        ../../gcc/omp-low.c:8971
0xc9536a execute_lower_omp
        ../../gcc/omp-low.c:9013
0xc9536a execute
        ../../gcc/omp-low.c:9050

Reply via email to