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