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

--- Comment #3 from anlauf at gcc dot gnu.org ---
(In reply to anlauf from comment #2)
> Reduced testcase:
> 
>   integer, parameter :: m = sizeof(d) ! ICE for n < 1

In target-memory.cc we run into int_size_in_bytes(), which returns -12
for n=0, and -24 for n=-1, and so on...

(gdb) l
127             gfc_typespec ts;
128             HOST_WIDE_INT size;
129             ts = e->ts;
130             type = gfc_typenode_for_spec (&ts);
131             size = int_size_in_bytes (type);
132             gcc_assert (size >= 0);
133             *siz = size;
134           }

It is strange that -fdump-fortran-original shows the same output for n=0 and
n=-1 when commenting out the ICEing line, so I wonder where this difference
comes from.  Some help interpreting tree type here might be helpful...

Reply via email to