[Patch, Fortran] PR40276/PR57711 - improve generic diagnostic
Dominique Dhumieres
dominiq@lps.ens.fr
Tue Jul 9 10:17:00 GMT 2013
Dear Tobias,
After this patch several tests related to pr20896 are now rejected,
it is probably right to issue an error for them, but I am not sure
that the message is right, e.g.
! { dg-do compile }
! Test the fix for PR20896 in which the ambiguous use
! of p was not detected.
!
! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
!
INTERFACE g
SUBROUTINE s1(p) ! { dg-error "is already being used" }
INTERFACE
SUBROUTINE p
END
END INTERFACE
END
SUBROUTINE s2(p) ! { dg-error "Global name" }
INTERFACE
REAL FUNCTION p()
END
END INTERFACE
END
END INTERFACE
INTERFACE
REAL FUNCTION x()
END
END INTERFACE
INTERFACE
SUBROUTINE y
END
END INTERFACE
call g (x)
call g (y)
END
REAL FUNCTION x()
x = 0.1
END
SUBROUTINE y()
print *, 1.5
END
SUBROUTINE s1(p)
call p()
END
SUBROUTINE s2(p)
print *, p()
END
is rejected with
pr20896_db.f90:27.20:
SUBROUTINE y
1
Error: FUNCTION attribute conflicts with SUBROUTINE attribute in 'y' at (1)
pr20896_db.f90:31.10:
call g (y)
1
Error: Interface mismatch in dummy procedure 'p' at (1): 'y' is not a function
Note that pr20896 is still open, so this should not delay the commit, but will
require to update pr20896.
Thanks for the patch,
Dominique
More information about the Gcc-patches
mailing list