https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91221
Bug ID: 91221 Summary: [10 Regression] ICE in get_int_cst_ext_nunits, at tree.c:1299 since r273548 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ cat ice.ii void printf(...); struct A { A() : bar_(), dbar_() { for (int i;; i++) printf(i, bar_[i]); } int bar_[5]; double dbar_[5]; }; void fn1() { A a; } $ g++ -fno-ipa-pure-const -O2 -fpack-struct ice.ii -c ice.ii: In constructor ‘A::A()’: ice.ii:3:23: warning: taking address of packed member of ‘A’ may result in an unaligned pointer value [-Waddress-of-packed-member] 3 | A() : bar_(), dbar_() { | ^ ice.ii:3:23: warning: taking address of packed member of ‘A’ may result in an unaligned pointer value [-Waddress-of-packed-member] during GIMPLE pass: fre ice.ii: In function ‘void fn1()’: ice.ii:10:6: internal compiler error: in get_int_cst_ext_nunits, at tree.c:1299 10 | void fn1() { A a; } | ^~~ 0x7f8e6d get_int_cst_ext_nunits /home/marxin/Programming/gcc/gcc/tree.c:1299 0x1283c88 wide_int_to_tree_1 /home/marxin/Programming/gcc/gcc/tree.c:1517 0xfb555c set_min_and_max_values_for_integral_type(tree_node*, int, signop) /home/marxin/Programming/gcc/gcc/stor-layout.c:2791 0xfbbde7 set_min_and_max_values_for_integral_type(tree_node*, int, signop) /home/marxin/Programming/gcc/gcc/stor-layout.c:2787 0xfbbde7 fixup_signed_type(tree_node*) /home/marxin/Programming/gcc/gcc/stor-layout.c:2805 0x128799f build_nonstandard_integer_type(unsigned long, int) /home/marxin/Programming/gcc/gcc/tree.c:8220 0x117e1b2 vn_walk_cb_data::push_partial_def(pd_data const&, tree_node*, long) /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:1852 0x117e1b2 vn_walk_cb_data::push_partial_def(pd_data const&, tree_node*, long) /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:1739 0x117f38e vn_reference_lookup_3 /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:2519 0x10c507c walk_non_aliased_vuses(ao_ref*, tree_node*, bool, void* (*)(ao_ref*, tree_node*, void*), void* (*)(ao_ref*, tree_node*, void*, bool*), tree_node* (*)(tree_node*), unsigned int&, void*) /home/marxin/Programming/gcc/gcc/tree-ssa-alias.c:3377 0x1176fb3 vn_reference_lookup(tree_node*, tree_node*, vn_lookup_kind, vn_reference_s**, bool, tree_node**) /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:3108 0x1181586 visit_reference_op_load /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:4466 0x1181586 visit_stmt /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:4883 0x1183483 process_bb /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:6506 0x1184786 do_rpo_vn /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:7137 0x1185f0a execute /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:7286 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.