------- Comment #4 from rep dot nop at aon dot at  2006-10-01 15:28 -------
Note that i don't think i can approve anything.
This patch fixes the following ICE for me:

http://gcc.gnu.org/ml/fortran/2006-09/msg00460.html

$ cat no.f90
        MODULE MOD1
        CONTAINS
        SUBROUTINE SUB1(arg)
        IMPLICIT NONE
        CHARACTER (LEN=*), OPTIONAL :: arg
        IF (PRESENT(arg)) WRITE(0,*) 'arg was ', arg
        STOP
        END SUBROUTINE SUB1
        SUBROUTINE SUB2
        CALL SUB1
        END SUBROUTINE SUB2
        END MODULE

Used to give before this fix
$ gfortran-4.2-HEAD -c no.f90
no.f90: In function 'sub2':
no.f90:3: internal compiler error: Segmentation fault

And with the fix compiles now as expected.

PS: Just curious..
Why isn't this part of gfc_conv_function_call() coded to check for fsym once
and only then have the additional checks?

if (fsym)
  {
    CHECKS_NOT_INVOLVING_e;
    if (e)
      {
        CHECK_e_STUFF;
      }
   }

It doesn't look like the order of most of these is significant since very
different things are checked, so there should be no risk in writing this in a
sleek manner.


-- 


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

Reply via email to