https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80109

            Bug ID: 80109
           Summary: ICE in get_range_info, at tree-ssanames.c:375
           Product: gcc
           Version: 7.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
                CC: mpolacek at gcc dot gnu.org, msebor at gcc dot gnu.org
  Target Milestone: ---
              Host: x86_64-linux-gnu
            Target: arm-linux-gnueabi

Running following test-case ICEs with cross compiler:

$ cat /tmp/tmpxgun9hqd.i
int a, c;
typedef struct
{
  int b;
} d;
int e ()
{
  int *f = &a;
  d *g = __builtin_alloca (f);
  for (;; c--)
    g[c].b = e;
}

$ arm-linux-gnueabi-gcc -Os -Walloca-larger-than=126812070 /tmp/tmpxgun9hqd.i
/tmp/tmpxgun9hqd.i: In function ‘e’:
/tmp/tmpxgun9hqd.i:9:28: warning: passing argument 1 of ‘__builtin_alloca’
makes integer from pointer without a cast [-Wint-conversion]
   d *g = __builtin_alloca (f);
                            ^
/tmp/tmpxgun9hqd.i:9:28: note: expected ‘unsigned int’ but argument is of type
‘int *’
/tmp/tmpxgun9hqd.i:11:12: warning: assignment makes integer from pointer
without a cast [-Wint-conversion]
     g[c].b = e;
            ^
/tmp/tmpxgun9hqd.i:6:5: internal compiler error: in get_range_info, at
tree-ssanames.c:375
 int e ()
     ^
0xd9e5d7 get_range_info(tree_node const*, generic_wide_int<wide_int_storage>*,
generic_wide_int<wide_int_storage>*)
        .././../gcc/tree-ssanames.c:375
0x11e0e68 alloca_call_type
        .././../gcc/gimple-ssa-warn-alloca.c:334
0x11e0e68 pass_walloca::execute(function*)
        .././../gcc/gimple-ssa-warn-alloca.c:466

Reply via email to