https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79379
Bug ID: 79379 Summary: [7 Regression] ICE with #pragma GCC ivdep Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org Target Milestone: --- The following valid code snippet triggers an ICE on trunk: ====================================== template<int> void foo(int* p) { #pragma GCC ivdep for (int i = 0; p[i]; ++i) ; } void bar(int* p) { foo<0>(p); } ====================================== bug.cc: In instantiation of 'void foo(int*) [with int <anonymous> = 0]': bug.cc:9:11: required from here bug.cc:4:17: sorry, unimplemented: unexpected AST of kind annotate_expr for (int i = 0; p[i]; ++i) ; ^ bug.cc:4:17: internal compiler error: in potential_constant_expression_1, at cp/constexpr.c:5697 0x83f32a potential_constant_expression_1 ../../gcc/gcc/cp/constexpr.c:5697 0x83fcd9 potential_constant_expression(tree_node*) ../../gcc/gcc/cp/constexpr.c:5708 0x83fcd9 potential_nondependent_constant_expression(tree_node*) ../../gcc/gcc/cp/constexpr.c:5750 0x840d64 maybe_constant_value(tree_node*, tree_node*) ../../gcc/gcc/cp/constexpr.c:4787 0x81be2a cp_fully_fold(tree_node*) ../../gcc/gcc/cp/cp-gimplify.c:1963 0x75c644 cp_build_binary_op(unsigned int, tree_code, tree_node*, tree_node*, int) ../../gcc/gcc/cp/typeck.c:5237 0x76de98 ocp_convert(tree_node*, tree_node*, int, int, int) ../../gcc/gcc/cp/cvt.c:801 0x76fbcb cp_convert(tree_node*, tree_node*, int) ../../gcc/gcc/cp/cvt.c:616 0x76fbcb cp_convert_and_check(tree_node*, tree_node*, int) ../../gcc/gcc/cp/cvt.c:635 0x5f7445 convert_like_real ../../gcc/gcc/cp/call.c:7042 0x5f835c perform_implicit_conversion_flags(tree_node*, tree_node*, int, int) ../../gcc/gcc/cp/call.c:10071 0x74dc04 condition_conversion(tree_node*) ../../gcc/gcc/cp/typeck.c:5547 0x7ac4e7 maybe_convert_cond ../../gcc/gcc/cp/semantics.c:989 0x7ac4e7 finish_for_cond(tree_node*, tree_node*, bool) ../../gcc/gcc/cp/semantics.c:980 0x66ecdb tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:15790 0x66f2b0 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:15880 0x66ba67 instantiate_decl(tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:22817 0x6abadb instantiate_pending_templates(int) ../../gcc/gcc/cp/pt.c:22938 0x6ee668 c_parse_final_cleanups() ../../gcc/gcc/cp/decl2.c:4525 Please submit a full bug report, [etc.]