https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88976
Bug ID: 88976 Summary: ICE in fold_convert_loc, at fold-const.c:2552 Product: gcc Version: 4.9.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++-9.0.0-alpha20190120 snapshot (r268107), 8.2, 7.4, 6.3, 5.5, 4.9.4 all ICE when compiling the following snippet w/ -fopenmp: template <class T> void jm (T cv) { #pragma omp cancel parallel if (cv) } % g++-9.0.0-alpha20190120 -fopenmp -c icjm7wqb.cpp icjm7wqb.cpp: In function 'void jm(T)': icjm7wqb.cpp:4:36: internal compiler error: in fold_convert_loc, at fold-const.c:2552 4 | #pragma omp cancel parallel if (cv) | ^ 0x6d8408 fold_convert_loc(unsigned int, tree_node*, tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/fold-const.c:2552 0xa307b1 finish_omp_cancel(tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/semantics.c:9060 0x997e65 cp_parser_omp_cancel /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:37755 0x997e65 cp_parser_pragma /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:40735 0x9a00ec cp_parser_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:11204 0x9a0c38 cp_parser_statement_seq_opt /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:11592 0x9a0d18 cp_parser_compound_statement /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:11546 0x9bab16 cp_parser_function_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:22530 0x9bab16 cp_parser_ctor_initializer_opt_and_function_body /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:22567 0x9bb3f0 cp_parser_function_definition_after_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27630 0x9bc1d4 cp_parser_function_definition_from_specifiers_and_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27546 0x9bc1d4 cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:20205 0x9bf7a4 cp_parser_single_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:28096 0x9bf90d cp_parser_template_declaration_after_parameters /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27688 0x9c026e cp_parser_explicit_template_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27934 0x9c026e cp_parser_template_declaration_after_export /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27953 0x9c2e09 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13122 0x9c346e cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:4698 0x9c346e c_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:41003 0xacce0b c_common_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/c-family/c-opts.c:1155