This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [patch, fortran] mixed functions/subroutines in generic interface
On Thursday 06 January 2011 20:31:08 H.J. Lu wrote:
> > Fixed whitespaces and committed as r168542.
>
> This caused:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47195
Committed attached changes as obvious as r168554.
No idea how I managed to mess this up :(
Daniel
Index: gfortran.dg/interface_33.f90
===================================================================
--- gfortran.dg/interface_33.f90 (revision 168553)
+++ gfortran.dg/interface_33.f90 (revision 168554)
@@ -1,4 +1,4 @@
-! { dg-do "compile" }
+! { dg-do compile }
!
! PR fortran/33117, PR fortran/46478
! Procedures of a generic interface must be either
@@ -10,7 +10,7 @@
!
module m1
interface gen
- subroutine sub() ! dg-error { "all SUBROUTINEs or all FUNCTIONs" }
+ subroutine sub() ! { dg-error "all SUBROUTINEs or all FUNCTIONs" }
end subroutine sub
function bar()
real :: bar
@@ -27,7 +27,7 @@ MODULE m2
MODULE PROCEDURE subr_name
END INTERFACE
CONTAINS
- LOGICAL FUNCTION func_name() ! dg-error { "all SUBROUTINEs or all FUNCTIONs" }
+ LOGICAL FUNCTION func_name() ! { dg-error "all SUBROUTINEs or all FUNCTIONs" }
END FUNCTION
SUBROUTINE subr_name()
END SUBROUTINE
Index: gfortran.dg/defined_operators_1.f90
===================================================================
--- gfortran.dg/defined_operators_1.f90 (revision 168553)
+++ gfortran.dg/defined_operators_1.f90 (revision 168554)
@@ -17,10 +17,21 @@ module mymod
character(*) :: foo_chr
character(*), intent(in) :: chr
end function foo_chr
+ end interface
+
+ !
+ ! PR fortran/33117
+ ! PR fortran/46478
+ ! Mixing FUNCTIONs and SUBROUTINEs in an INTERFACE hides the
+ ! errors that should be tested here. Hence split out subroutine
+ ! to test separately.
+ !
+ interface operator (.bar.)
subroutine bad_foo (chr) ! { dg-error "must be a FUNCTION" }
character(*), intent(in) :: chr
end subroutine bad_foo
end interface
+
contains
function foo_0 () ! { dg-error "must have at least one argument" }
integer :: foo_1
Index: ChangeLog
===================================================================
--- ChangeLog (revision 168553)
+++ ChangeLog (revision 168554)
@@ -1,3 +1,11 @@
+2011-01-06 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/47195
+ * gfortran.dg/interface_33.f90: Fixed dg-error declarations.
+ * gfortran.dg/defined_operators_1.f90: Split the subroutine
+ from the interface of functions to not hide the errors that
+ shall be tested.
+
2011-01-06 Jan Hubicka <jh@suse.cz>
* testsuite/gcc.dg/lto/pr47188_0.c: New testcase.