[Bug fortran/30319] internal error in gfc_resolve_expr() for character parameter

fxcoudert at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Jan 22 23:54:00 GMT 2007



------- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-01-22 23:54 -------
The code that triggers the ICE enters gfc_resolve with
gfc_current_ns->cl_list->length that is:

$12 = {expr_type = 0, ts = {type = BT_UNKNOWN, kind = 0, derived = 0x0, 
    cl = 0x0}, rank = 0, shape = 0x0, symtree = 0x0, ref = 0x0, where = {
    nextc = 0x0, lb = 0x0}, from_H = 0, inline_noncopying_intrinsic = 0, 
  con_by_offset = 0x0, value = {logical = 0, integer = {{_mp_alloc = 0, 
        _mp_size = 0, _mp_d = 0x0}}, real = {{_mpfr_prec = 0, _mpfr_sign = 0, 
        _mpfr_exp = 0, _mpfr_d = 0x0}}, complex = {r = {{_mpfr_prec = 0, 
          _mpfr_sign = 0, _mpfr_exp = 0, _mpfr_d = 0x0}}, i = {{
          _mpfr_prec = 0, _mpfr_sign = 0, _mpfr_exp = 0, _mpfr_d = 0x0}}}, 
    op = {operator = GFC_INTRINSIC_BEGIN, uop = 0x0, op1 = 0x0, op2 = 0x0}, 
    function = {actual = 0x0, name = 0x0, isym = 0x0, esym = 0x0}, 
    character = {length = 0, string = 0x0}, constructor = 0x0}}

while for the working code (separated on two different lines), it is:

$9 = {expr_type = EXPR_CONSTANT, ts = {type = BT_INTEGER, kind = 4, 
    derived = 0x0, cl = 0x0}, rank = 0, shape = 0x0, symtree = 0x0, ref = 0x0, 
  where = {nextc = 0x87ef431 "1), parameter :: bb(1) = (/ aa /)", 
    lb = 0x87ef410}, from_H = 0, inline_noncopying_intrinsic = 0, 
  con_by_offset = 0x0, value = {logical = 2, integer = {{_mp_alloc = 2, 
        _mp_size = 1, _mp_d = 0x880d358}}, real = {{_mpfr_prec = 2, 
        _mpfr_sign = 1, _mpfr_exp = 142660440, _mpfr_d = 0x0}}, complex = {
      r = {{_mpfr_prec = 2, _mpfr_sign = 1, _mpfr_exp = 142660440, 
          _mpfr_d = 0x0}}, i = {{_mpfr_prec = 0, _mpfr_sign = 0, 
          _mpfr_exp = 0, _mpfr_d = 0x0}}}, op = {operator = INTRINSIC_PLUS, 
      uop = 0x1, op1 = 0x880d358, op2 = 0x0}, function = {actual = 0x2, 
      name = 0x1 <Address 0x1 out of bounds>, isym = 0x880d358, esym = 0x0}, 
    character = {length = 2, string = 0x1 <Address 0x1 out of bounds>}, 
    constructor = 0x2}}


I think Paul T. worked on something similar, something like a year ago. We used
to fail on these multiple declarations per line already.


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |paulthomas2 at wanadoo dot
                   |                            |fr
   Last reconfirmed|2006-12-28 19:19:40         |2007-01-22 23:54:20
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30319



More information about the Gcc-bugs mailing list