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

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tkoenig at gcc dot gnu.org

--- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
The problem manifests itself in trans-array.c:

   │6953          /* Set se = NULL in the calls to the interface mapping, to
suppress any                                                                   
       │
   │6954             backend stuff.  */                                        
                                                                               
    │
  >│6955          for (; arg != NULL; arg = arg->next, formal = formal ?
formal->next : NULL)                                                           
           │
   │6956            {                                                          
                                                                               
    │
   │6957              if (!arg->expr)                                          
                                                                               
    │
   │6958                continue;                                              
                                                                               
    │
   │6959              if (formal->sym)                                         
                                                                               
    │
   │6960              gfc_add_interface_mapping (&mapping, formal->sym, NULL,
arg->expr);                                                                    
      │
   │6961            }    


(gdb) call gfc_debug_expr(expr)
f[[(((/ 'xyz' /)))]]
(gdb) p formal
$21 = (gfc_formal_arglist *) 0x0

So, although we have an actual arglist, the formal arg list
has gotten lost somewhere, presumably because it is generic.

Reply via email to