This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/49430] ICE with allocatable length character in interface block
- From: "janus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 21 Jun 2011 20:21:47 +0000
- Subject: [Bug fortran/49430] ICE with allocatable length character in interface block
- Auto-submitted: auto-generated
- References: <bug-49430-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49430
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011.06.21 20:21:29
Ever Confirmed|0 |1
--- Comment #3 from janus at gcc dot gnu.org 2011-06-21 20:21:29 UTC ---
(In reply to comment #1)
> I wonder whether the
> 3538 type = gfc_get_character_type (ts.kind, ts.u.cl);
> should be rather:
> type = gfc_get_character_type (ts.kind, ts->deferred ? NULL_TREE : ts.u.cl);
Well, with this:
Index: gcc/fortran/trans-expr.c
===================================================================
--- gcc/fortran/trans-expr.c (revision 175256)
+++ gcc/fortran/trans-expr.c (working copy)
@@ -3535,7 +3535,8 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol *
else if (ts.type == BT_CHARACTER)
{
/* Pass the string length. */
- type = gfc_get_character_type (ts.kind, ts.u.cl);
+ type = gfc_get_character_type (ts.kind,
+ ts.deferred ? NULL_TREE : ts.u.cl);
type = build_pointer_type (type);
/* Return an address to a char[0:len-1]* temporary for
I run into another segfault:
#0 0x0000000000575a6d in gfc_evaluate_now_loc (loc=2308, expr=0x0,
pblock=0x7fffffffd560) at /home/jweil/gcc47/trunk/gcc/fortran/trans.c:126
#1 0x0000000000575b40 in gfc_evaluate_now (expr=0x0, pblock=0x7fffffffd560) at
/home/jweil/gcc47/trunk/gcc/fortran/trans.c:139
#2 0x00000000005ca23b in gfc_trans_assignment_1 (expr1=0x1af3df0,
expr2=0x1af3eb0, init_flag=0 '\000', dealloc=1 '\001')
at /home/jweil/gcc47/trunk/gcc/fortran/trans-expr.c:6117