This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/38536] ICE with C_LOC in resolve.c due to not properly going through expr->ref
- From: "burnus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 9 Jan 2011 15:33:11 +0000
- Subject: [Bug fortran/38536] ICE with C_LOC in resolve.c due to not properly going through expr->ref
- Auto-submitted: auto-generated
- References: <bug-38536-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38536
--- Comment #15 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-01-09 15:33:02 UTC ---
(In reply to comment #13)
> The test case from comment 6 gives an ICE (segfault) in
> gfc_conv_procedure_call's check for
> && fsym->as->type != AS_ASSUMED_SHAPE;
> (guess: "fsym->as" is NULL)
Actually, it's in conv_isocbinding_procedure (which got inlined). The issue
seems to be that the code assumes that arg->expr->rank != 0 implies that
arg->expr->symtree->n.sym->as is set. However, the assumption fails for:
p = c_loc(tt%t%i(1))
as "tt" is a scalar.