https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100957
Bug ID: 100957 Summary: [12 Regression] ICE: Segmentation fault (in copy_tree_body_r) Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, openmp Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-12.0.0-alpha20210606 snapshot (g:fed94fc9e704b0de228499495b7ca4d4c79ef76b) ICEs when compiling the following testcase, reduced from clang/testsuite/OpenMP/ordered_doacross_codegen.cpp from the clang 12.0.0 test suite, w/ -fopenmp: struct TestStruct { TestStruct() { #pragma omp for ordered(2) for (int j = 0; j < 1; j++) for (int i = 0; i < 1; i++) { #pragma omp ordered depend(source) ; } } }; % g++-12.0.0 -fopenmp -c yaq6cvjp.cpp yaq6cvjp.cpp: In constructor 'TestStruct::TestStruct()': yaq6cvjp.cpp:10:3: internal compiler error: Segmentation fault 10 | } | ^ 0x10e6bef crash_signal /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/toplev.c:327 0x116ed6d copy_tree_body_r(tree_node**, int*, void*) /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/tree-inline.c:1463 0x13e403a walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/tree.c:10969 0x13e4211 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/tree.c:11318 0xa3afcc clone_body /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/optimize.c:112 0xa3afcc maybe_clone_body(tree_node*) /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/optimize.c:681 0xaf4971 expand_or_defer_fn_1(tree_node*) /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/semantics.c:4645 0xb01816 expand_or_defer_fn_1(tree_node*) /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/semantics.c:4675 0xb01816 expand_or_defer_fn(tree_node*) /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/semantics.c:4676 0xa7dcf1 cp_parser_function_definition_after_declarator /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:30157 0xa7e19c cp_parser_late_parsing_for_member /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:31051 0xa57498 cp_parser_class_specifier_1 /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:25249 0xa580c7 cp_parser_class_specifier /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:25277 0xa580c7 cp_parser_type_specifier /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:18509 0xa59111 cp_parser_decl_specifier_seq /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:15110 0xa59fe4 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:14366 0xa88415 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:14184 0xa89170 cp_parser_toplevel_declaration /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:14213 0xa89170 cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:4942 0xa89170 c_parse_file() /var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210606/work/gcc-12-20210606/gcc/cp/parser.c:45509