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