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.

Reply via email to