procedure declaration

Janus Weil jaydub66@googlemail.com
Sat Jun 23 22:12:00 GMT 2007


Hey guys,
after some further modifications I'm finally able to compile my little
test program. Basically I added a few lines a la

"if (sym->attr.procedure==0) ..."

here and there to get rid of some error messages. After that I got
another ICE, which I could trace down to the following code in
resolve.c(resolve_symbol):

if (sym->attr.procedure && sym->formal != NULL)
    {
      gfc_formal_arglist *f = sym->formal;
      sym->ts = f->sym->ts;
      sym->attr.function = f->sym->attr.function;
      sym->attr.subroutine = f->sym->attr.subroutine;
      //sym->formal = f->sym->formal;
      sym->attr.if_source = IFSRC_DECL;
      gfc_free_formal_arglist (f);
    }

This comes from Paul's original patch, and I really have no idea why
it is there or what it is supposed to do (I hope Paul can tell me).
Since it produced errors I just commented it out, and now my test
program compiles without problems and produces correct output. The
test program includes an abstract interface and a simple procedure
declaration, no pointers yet. The new patch is attached. Props go to
Steve for his quick help on IRC.
Cheers,
Janus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: procpatch125976.diff
Type: text/x-patch
Size: 21492 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20070623/e6f769c3/attachment.bin>


More information about the Fortran mailing list