Alternate-return arguments in argument lists are represented by a null symbol
or expression pointer.  In intrinsic.c, remove_nullargs() simply removes
null-pointer symbols from the argument list handled by an intrinsic function or
subroutine.  Ergo, an alternate-return actual argument in an intrinsic
subroutine call will simply be skipped over and ignored.  The following code
demonstrates this:

-------------------------------------------------------------------

debian-gfortran:~/test> cat ar1.f90
program ar1
    real t1
    call cpu_time(*20, t1)
20  write(*,*) t1
end

debian-gfortran:~/test> ../bin-trunk/bin/gfortran ar1.f90
debian-gfortran:~/test> ./a.out
  1.2997000E-02
debian-gfortran:~/test> ../bin-trunk/bin/gfortran --version
GNU Fortran 95 (GCC) 4.3.0 20061128 (experimental)
Copyright (C) 2006 Free Software Foundation, Inc.


-- 
           Summary: Alternate return arguments in intrinsic subroutine calls
                    are ignored
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: accepts-invalid
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: brooks at gcc dot gnu dot org


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

Reply via email to