Commit 3728af14 by Daniel Franke Committed by Daniel Franke

re PR fortran/47195 (New Fortran test failures)

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.

From-SVN: r168554
parent e1a973d8
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> 2011-01-06 Jan Hubicka <jh@suse.cz>
* testsuite/gcc.dg/lto/pr47188_0.c: New testcase. * testsuite/gcc.dg/lto/pr47188_0.c: New testcase.
......
...@@ -17,10 +17,21 @@ module mymod ...@@ -17,10 +17,21 @@ module mymod
character(*) :: foo_chr character(*) :: foo_chr
character(*), intent(in) :: chr character(*), intent(in) :: chr
end function foo_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" } subroutine bad_foo (chr) ! { dg-error "must be a FUNCTION" }
character(*), intent(in) :: chr character(*), intent(in) :: chr
end subroutine bad_foo end subroutine bad_foo
end interface end interface
contains contains
function foo_0 () ! { dg-error "must have at least one argument" } function foo_0 () ! { dg-error "must have at least one argument" }
integer :: foo_1 integer :: foo_1
......
! { dg-do "compile" } ! { dg-do compile }
! !
! PR fortran/33117, PR fortran/46478 ! PR fortran/33117, PR fortran/46478
! Procedures of a generic interface must be either ! Procedures of a generic interface must be either
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
! !
module m1 module m1
interface gen interface gen
subroutine sub() ! dg-error { "all SUBROUTINEs or all FUNCTIONs" } subroutine sub() ! { dg-error "all SUBROUTINEs or all FUNCTIONs" }
end subroutine sub end subroutine sub
function bar() function bar()
real :: bar real :: bar
...@@ -27,7 +27,7 @@ MODULE m2 ...@@ -27,7 +27,7 @@ MODULE m2
MODULE PROCEDURE subr_name MODULE PROCEDURE subr_name
END INTERFACE END INTERFACE
CONTAINS 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 END FUNCTION
SUBROUTINE subr_name() SUBROUTINE subr_name()
END SUBROUTINE END SUBROUTINE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment